6
我需要預先加載模型與複雜條件的關聯。 NO,includes
不適用於我。它爲我的任務生成錯誤的SQL。如何爲Rails關聯::預加載器設置預加載範圍?
我看看到ActiveRecord::Associations::Preloader
,發現他採取preload_scope
參數:
http://apidock.com/rails/v4.2.1/ActiveRecord/Associations/Preloader/preload
def preload(records, associations, preload_scope = nil)
# ...
end
但使用它,我無法找到任何例子。這種情況下preload_scope
是什麼?我如何使用它來過濾關聯? 謝謝!
哦,謝謝,它的工作原理!但爲什麼它會產生如此多的查詢? (52,50,51,53) 'User Load(12.1ms)SELECT「用戶負載(1.2ms)SELECT「users」。* FROM「users」WHERE(created_at>'2015-01-01') User Load(5.1ms)SELECT「users」。* FROM「users」' – Vladimir
你的代碼? –
'users = Car.find(1).users rows = users.to_a ActiveRecord :: Associations :: Preloader.new.preload(rows,:activities,Struct.new(:values,:bind_values).new( {where:「created_at>'2015-01-01'」},[]))' – Vladimir