【问题标题】:Find all items through two has_many associations通过两个 has_many 关联查找所有项目
【发布时间】:2012-06-03 03:26:11
【问题描述】:

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

  1. 有一个 HOUSE 类;它有_许多房间
  2. 有一个 ROOM 类;它属于_一所房子并拥有_许多家具
  3. 有一个家具类;它属于_一个房间

给出这个模型设置,如何找到给定房屋中的所有家具?我希望能够做类似arbitrary_house.furnishings 的事情。

这是否可能不添加更多关联?

【问题讨论】:

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


    【解决方案1】:

    如下设置模型:

    house.rb

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

    房间.rb

    belongs_to :house
    has_many :furnishings
    

    家具.rb

    belongs_to :room
    

    现在你可以说

    arbitrary_house.furnishings
    

    另见:

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

    【讨论】:

    • Rails 和 Ruby 可以做到这一点。我花了两天时间才找到大写。我的堆栈前溢出天数。
    • 由于 mongoid 不支持 :through,我不得不制作 HOUSE,has_many FURNISHINGS 和 FURNISHING belongs_to HOUSE
    • 那么陈设表有room_id和house_id?请在问题文本或标题或标签中输入 Mongoid。
    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多