我试图在加载多态关联的同时使用Kaminari进行分页:
@news_items = NewsItem.includes(:news_source).not_outdated
.where(:group_id => group_ids).order("created_at DESC").page(params[:page]).per(10)我收到了错误消息:
ActiveRecord::Pages#dashboard中的EagerLoadPolymorphicError 显示'BLAH BLAH'/dashboard.html.erb,其中第49号行出现:无法急切地加载多态关联:news_source
当我移除Kaminari作用域( .page:page ) .per(10)时,错误就消失了。
有人有什么想法吗?这篇文章建议支持使用多态关联进行急切加载,但是只有当可能作为作用域应用于关系的条件/顺序不引用任何其他表(如果引用了其他表,那么Rails就使用左侧外部联接方法来处理不能处理多态关联的急切加载)。那么: Kaminari是指另一张桌子吗?
如有任何建议,我将不胜感激!
干杯。
发布于 2017-10-19 20:53:42
您应该始终将preload用于多态关联。
这个错误可能发生,因为includes决定在需要查询关联的条件时调用eager_load,并且多态关联仅由preload支持。在文档里
https://stackoverflow.com/questions/5977389
复制相似问题