下面的問題有一個很好的答案,使用Comment.includes(:user)
在一次命中中獲取activerecord集合的關聯值。當你想要一次抓取多個關聯時,怎麼樣?Rails有ActiveRecord一次抓取多個關聯?
Rails have activerecord grab all needed associations in one go?
是隻這些連鎖在一起,就像下面Customer.includes(:user).includes(:sales).includes(:prices)
最好的辦法還是有一個更清潔的方式。
此外,當我在一個索引表的循環上這樣做。我可以添加在customer.rb
模型的方法,這樣我可以打電話@customers.table_includes
等,並有
def table_includes
self.includes(:user).includes(:sales).includes(:prices)
end
爲了記錄我測試上面,並沒有因爲它的工作方法上的集合(還沒搞清楚這個怎麼做)。
謝謝。我把它作爲一個範圍,並且工作得很好。我已經包含了,所以我沒有在每個循環中調用數據庫。似乎用'連接'它將回到查詢數據庫。有沒有一種方法可以同時加入幷包含在內,或者只是在範圍內鏈接? –
對於你認爲表是activerecord與has_many和belongs_to關聯的假設'是' –
到目前爲止使用'scope:table_includes, - > {joins(:user,:sales,:prices).includes(:user,:銷售,:價格)}'似乎工作,但不是很乾。希望有一件事我可以在一次通話中替代'joins'和'includes'。 –