通过多种关系访问模型

时间:2011-12-19 12:20:19

标签: ruby-on-rails activerecord ruby-on-rails-3.1

您好我有一个查询是通过多个模型访问一个模型是个好主意。对于前

我有5个模型

Class A
    belongs_to :b
end 

Class B
    belongs_to :c
  has_many :a
end 

Class C
    belongs_to :d
  has_many :b
end 

Class D
    belongs_to :e
  has_many :c
end 

Class E
  has_many :d
end 

现在如果我有一个E类的对象并且我想获得与E相关的A类的对象,那么它是否是正确的方法.....或者我应该在E类和某些类之间添加关系其他班级(B / C)

1 个答案:

答案 0 :(得分:1)

这完全取决于你。如果您发现自己将这些链接在一起并经常通过链接访问它们,请问问自己这种关系是否准确。

例如,如果我说我的房子有很多房间,房间有很多门,我可以这样做:

house.rooms.first.doors.first

但如果我经常这样做,我显然关心门是属于房子的。在这种情况下,我宁愿能够说:

house.doors.first_on_floor(2)

您可以使用

执行此操作
has_many :doors, :through => :rooms

希望这有帮助!