通过两个has_many关联查找所有项目

时间:2012-06-03 03:26:11

标签: ruby-on-rails ruby-on-rails-3 model mongoid

假设我有一个Rails应用程序,其模型如下:

  1. 有一个HOUSE课程;它有很多房间
  2. 有一个ROOM课程;它属于一个房子和has_many家具
  3. 有一个家具课;它属于一个房间
  4. 给这个模型设置,如何找到给定HOUSE中的所有家具?我希望能够做arbitrary_house.furnishings之类的事情。

    这可以在不添加更多关联的情况下实现吗?

1 个答案:

答案 0 :(得分:1)

按如下方式设置模型:

house.rb

has_many :rooms
has_many :furnishings, :through => :rooms

room.rb

belongs_to :house
has_many :furnishings

furnishing.rb

belongs_to :room

现在你可以说

arbitrary_house.furnishings

另见:

http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association