是否可以使用动态条件执行急切加载?更具体地说:
u_id = params[:user_id]
Container.includes(:items).where("items.user_id =?", u_id)
这显然没有给我所有容器,但只包含某个user_id
的项目,因为它将where
条件应用于整个查询,而不仅仅是:items
,但有没有办法使用ARel完成此任务,还是需要自定义SQL查询?
答案 0 :(得分:0)
只需在查询中致电scoped
:
Container.where("items.user_id =?", u_id).includes(:items).scoped
这将返回Arel对象而不是数据库查询。
在Rails Console
中试用,您可以看到创建的Arel对象与不使用scoped
时运行的对象相比。