您好我有一个查询是通过多个模型访问一个模型是个好主意。对于前
我有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)
答案 0 :(得分:1)
这完全取决于你。如果您发现自己将这些链接在一起并经常通过链接访问它们,请问问自己这种关系是否准确。
例如,如果我说我的房子有很多房间,房间有很多门,我可以这样做:
house.rooms.first.doors.first
但如果我经常这样做,我显然关心门是属于房子的。在这种情况下,我宁愿能够说:
house.doors.first_on_floor(2)
您可以使用
执行此操作has_many :doors, :through => :rooms
希望这有帮助!