我正在尝试加载多态关联,同时使用Kaminari gem进行分页:
@news_items = NewsItem.includes(:news_source).not_outdated
.where(:group_id => group_ids).order("created_at DESC").page(params[:page]).per(10)
我收到错误消息:
的ActiveRecord :: EagerLoadPolymorphicError 在Pages#dashboard
中显示'BLAH BLAH'/ dashboard.html.erb 第49行提出:不能急切 加载多态关联 :新闻来源
当我删除Kaminari范围(.page [:page])。per(10))时,错误消失。
有人有什么想法吗? This article建议支持使用多态关联的急切加载,但前提是可能作为作用域应用于Relation的条件/顺序不引用任何其他表(如果是,则Rails使用LEFT OUTER)用于渴望加载的JOIN方法,它不能用于多态关联)。那么:Kaminari会引用另一张桌子吗?
非常感谢任何建议!
干杯。
答案 0 :(得分:0)
您应始终使用preload
进行多态关联。
可能会发生此错误,因为includes
如果需要查询关联条件,则决定调用eager_load
,并且只有preload
支持多态关联。它位于documentation