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 :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 回答