2012-06-25 62 views
2

當談到導軌和活動記錄關聯時,我感覺有點慢...我有兩個表格。相關表格:加入或包含導軌

表=
表= 變化與foreign_key => 「ring_id」。

class Ring < ActiveRecord::Base 
     has_many :variations 
end 

class Variation < ActiveRecord::Base 
     belongs_to :ring 
end 
在我的「索引/目錄」

所以,鑑於我想顯示所有的光環,都在變化,我想這將有可能通過一個SQL查詢來做到這一點。不過,我已經嘗試了加入和包含方法,我想我只是不理解他們如何正常工作。

所以我的問題是,我將如何在我的控制器中編寫一個查詢,從「變化」中將我的「標題」和「值」列值拉到一起,並將它們組合成一個簡單的對象以便於循環?或者我必須循環遍歷所有環,並在循環期間查找變化值?

感謝

回答

2

在你的控制器:

​​

在index.html.erb:

@rings.each do |ring| 
    ... 
    ring.variations.each do |variation| 
    ... 
    end 
end 

的包括查詢將防止從Rails的反覆查詢的一部分數據庫循環播放並呈現視圖中的環和變體。

+0

好。請注意,ring.variations是關鍵,因爲它通過關聯訪問數據。這些內容很好地提高了性能,但如果沒有它,查詢仍然可以正常工作。 –

+0

所有的最好的事情是使用:代表來獲取變化信息來響,但這是一個更先進(和更好的設計,但不是必需的)。 –

+0

謝謝!!!這麼簡單,已經爲我工作了! –