虽然查询相关的表中找到满足Rails中
问题描述:
的情况我有两个表,车和项目虽然查询相关的表中找到满足Rails中
class Carts
has_many :items
end
class Items
belongs_to :carts
end
table Item
:status string ('auto_assigned', 'deleted', 'added')
:quantity integer
:cart_id integer
table Cart
:item_limit integer
项目可以被添加到购物车或自动分配的所有相关表。一个项目可以具有“添加”,“自动分配”或“删除”的状态。 Cart表有一个:item_limit,它是一个整数。我正在创建一个查询,它将返回所有包含“auto_assigned”项的所有购物车。令我困惑的部分是,购物车可能有比它的item_limit更多的物品:物品可能具有删除的状态并且合计物品的数量。
这里是我到目前为止,然而,这是不是在最佳速度:
carts = Cart.all
carts.select{|i| i.items.where(status: 'auto_assigned').sum(:quantity) >= i.item_limit}
答
,你可以做这样的:
Cart.includes(:items).where(status: 'auto_assigned')
这将返回与状态项目的所有车auto_assigned。
字体: https://apidock.com/rails/ActiveRecord/QueryMethods/includes
因为车可以是状态项:“添加”,这也将包括那些如果车有一个“auto_assigned”和3“添加”。我需要所有'auto_assigned'的购物车 – tnaught