Activeadmin: 添加 before_filter 时出现“集合不是分页范围”错误

创建于 2012-04-06  ·  3评论  ·  资料来源: activeadmin/activeadmin

大家好,

我正在尝试向索引操作添加一个 before_filter,以便我可以在 before_filter 中设置实例变量,希望当索引操作被调用时,它会检查是否已经设置了该变量。 然后,如果是,请使用它而不是 activeadmin 默认值:

ActiveAdmin.register Account do
//... (code)

controller do
  before_filter :checkviews, :only => :index

  def checkviews
    if params[:q] && params[:q][:ancestry_eq]
      <strong i="7">@accounts</strong> = Account.ancestry_scoper(Account.find_by_id(params[:q][:ancestry_eq]))
    end
  end
end

问题是我收到此错误消息:

Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.

最有用的评论

某些模型的命名可能非常接近保留字,例如 core 或 page。
这些模型也往往会触发这个问题。 很可能您是通过谷歌搜索偶然发现这个问题的。

有关示例,请参见https://github.com/gregbell/active_admin/issues/959

所有3条评论

如果您手动设置实例集合变量,则需要手动对其进行分页,如错误中所述。 ActiveAdmin 在索引页上使用分页助手。

某些模型的命名可能非常接近保留字,例如 core 或 page。
这些模型也往往会触发这个问题。 很可能您是通过谷歌搜索偶然发现这个问题的。

有关示例,请参见https://github.com/gregbell/active_admin/issues/959

此页面是否有帮助?
0 / 5 - 0 等级