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