[英]Rails have ActiveRecord grab more than one association in one go?
下面的問題很好地回答了使用Comment.includes(:user)
一鍵捕獲ActiveRecord集合的關聯值。 如果您想一次獲得多個關聯,該怎么辦?
是將這些鏈接在一起的最佳方法,例如下面的Customer.includes(:user).includes(:sales).includes(:prices)
還是有一種更簡潔的方法。
此外,當我在索引表上循環執行此操作時。 我可以在customer.rb
模型上添加一個方法,以便可以調用@customers.table_includes
等並具有
def table_includes
self.includes(:user).includes(:sales).includes(:prices)
end
為了記錄,我測試了上面的內容,但由於它是集合上的一種方法(目前仍未弄清楚如何做到這一點),因此無法正常工作。
在回答這個問題時,我假設user
, sales
和prices
都是Customer
關聯。
除了鏈接,您可以執行以下操作:
Customer.includes(:user, :sales, :prices)
在為此創建抽象方面,您確實有幾個選擇。
首先,您可以創建一個范圍:
class Customer < ActiveRecord::Base
scope :table_includes, -> { includes(:user, :sales, :prices) }
end
或者,如果要使其成為一種方法,則應考慮使其成為類級別的方法,而不是實例級別的方法:
def self.table_includes
self.includes(:user, :sales, :prices)
end
我會考慮創建此抽象的目的。 從長遠來看,像table_includes
這樣的通用名稱可能不太友好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.