0

こんな関係を持っています

class House
 has_many :apartments
end 

class Apartments
 belongs_to :house
 has_many :category_join_table
 has_many :categories, :through => :category_join_table
end

「アパートのある家だけを表示する」という目的で、家のモデルにscopeメソッドを作成しました

scope :with_apartments, lambda { joins(:appartments).group('appartments.id').uniq { |h| h[:id] }}

だから私はコントローラーロジックでhouse.with_apartmentsを作ることができます。これはうまく機能するので、ページにアパートのある家だけを取得します。そして、アパートのない家は表示されませんでした。

しかし今、私は自分のカテゴリ モデル (many_to_many) に関連付けたいと考えています。したがって、「アパートとカテゴリ = X のある家のみを表示する」

4

1 に答える 1

2

これを試して:

# in category.rb

has_many :category_join_table
has_many :apartments, :through => :category_join_table
has_many :houses, :through => :apartments
于 2012-04-20T09:13:35.273 に答える