我在rails应用程序中有以下模型
category => company => store
店铺有belongs_to
公司,公司有belongs_to
品类关系。现在我想在商店对象上使用 where 方法来检索同一类别中的所有商店。
我想要这样的东西
@stores.nearbys(5).where("stores.company.category_id = xxx")
有人可以给我一个提示吗
我在rails应用程序中有以下模型
category => company => store
店铺有belongs_to
公司,公司有belongs_to
品类关系。现在我想在商店对象上使用 where 方法来检索同一类别中的所有商店。
我想要这样的东西
@stores.nearbys(5).where("stores.company.category_id = xxx")
有人可以给我一个提示吗
尝试使用连接表上的 where 连接:
@stores.nearbys(5).joins(:company).where("companies.category_id = xxx")
编辑:
要获取商店的类别,您首先必须将类别方法委托给其公司:
class Store < ActiveRecord::Base
belongs_to :company
delegate :category, :to => :company
end
现在只需在查询中调用该方法:
@stores.nearbys(5).joins(:company).where("companies.category_id = ?", self.company.id)
where
支持嵌套哈希。
@stores.nearbys(5).where(:company => { :category_id => @category.id }, joins: company)
你可以试试这个
@category = Category.find xxx
@store = @category.company.stores