【发布时间】:2011-08-24 01:24:52
【问题描述】:
我正在尝试加载多态关联,同时还使用 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 在页面中#dashboard
显示 'BLAH BLAH'/dashboard.html.erb 第 49 行提出的地方:不能急于求成 加载多态关联 :news_source
当我删除 Kaminari 范围 ( .page[:page]).per(10) ) 时,错误就会消失。
有人有什么想法吗? This article 建议支持使用多态关联进行预加载,但前提是可能应用于 Relation 作为范围的条件/顺序不引用任何其他表(如果这样做,则 Rails 使用 LEFT OUTER JOIN 方法对于不能在多态关联上工作的急切加载)。那么:Kaminari 是否引用了另一个表?
不胜感激任何建议!
干杯。
【问题讨论】:
-
您可以编辑您的帖子并添加模型吗?
-
或者类似:Kaminari.paginate_array(@ news_items.all).page(params[:page]).per(10)
-
这个问题已经过去了 6 个多月,我认为我的代码已经很好地、真正地继续前进了。今天晚些时候会尝试回顾一下。
-
您是否尝试在您的表达式末尾添加includes(:news_source)?
标签: ruby-on-rails ruby-on-rails-3 polymorphic-associations eager-loading kaminari