2011-12-19 79 views
0

嗨,我有一個查詢是通過多個模型訪問一個模型的好主意。對於前通過多個關係訪問模型

我有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的ojects,是它這樣做正確的方式。 ....或者我應該添加一個類E和其他類之間的關係(B/C)

回答

1

這真的取決於你。如果您發現自己將這些鏈接在一起並經常通過鏈接訪問它們,問問自己這種關係是否準確。

舉例來說,如果我說我的房子有許多房間和一間有很多的門,我可以這樣做:

house.rooms.first.doors.first 

但如果我這樣做的時候,我明明在乎的門屬於房子。在這種情況下,我寧願能夠說:

house.doors.first_on_floor(2) 

您可以

has_many :doors, :through => :rooms 

希望這有助於做到這一點!