Railsアプリケーションに次のモデルがあります
category => company => store
ストアにはbelongs_to
会社と会社にはbelongs_to
カテゴリの関係。ここで、ストアオブジェクトのwhereメソッドを使用して、同じカテゴリ内のすべてのストアを取得したいと思います。
こんなものが欲しいのですが
@stores.nearbys(5).where("stores.company.category_id = xxx")
誰かが私にこれについてのヒントを与えることができます
結合されたテーブルのどこで結合してみてください:
@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)