我有一个像这样的巨大复杂查询:
@objects = Object.joins({ x: :y }).includes(
[:s, { x: { y: :z } }, { l: :m },:q, :w,
{ important_thing:
[:h, :v, :c,:l, :b, { :k [:u, :a] }]
}
]).where(conditions).order("x.foo, x.bar")
然后我想显示所有Objects
并且只有Important_things
在两个日期之间创建的。
如果我把它放在那里的where
条款上,我不会得到所有,Objects
只有在知情日期之间。Objects
Important_things
使用原始 sql 的解决方案是:
select * from objects left join important_things on important_things.object_id = objets.id and important_things.created_at between 'x' and 'y'
代替:
select * from objects left join important_things on important_things.object_id = objets.id where important_things.created_at between 'x' and 'y'
我真的需要所有这些对象,我不想使用原始 SQL、任何解决方法或将参数传递给ON
关联子句的可能性?