Activeadmin: before_filterを追加すると、「コレクションはページ付けされたスコープではありません」エラーが発生します

作成日 2012年04月06日  ·  3コメント  ·  ソース: activeadmin/activeadmin

やあみんな、

before_filterをindexアクションに追加しようとしているので、before_filterでインスタンス変数を設定できます。できれば、indexアクションが呼び出されると、varがすでに設定されているかどうかがチェックされます。 もしそうなら、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.

最も参考になるコメント

特定のモデルは、コアやページなど、予約語のように見えるものに非常に近い名前が付けられている場合があります。
これらのモデルもこの問題を引き起こす傾向があります。 おそらく、あなたはグーグル検索を介してこの問題に遭遇しました。

例については、 https://github.com/gregbell/active_admin/issues/959を参照して

全てのコメント3件

インスタンスコレクション変数を手動で設定する場合は、エラーに記載されているように、手動でページ付けする必要があります。 ActiveAdminは、インデックスページでページ付けヘルパーを使用します。

または、スコープを使用できます

https://github.com/gregbell/active_admin/wiki/Scoped-index-resource
例: https

特定のモデルは、コアやページなど、予約語のように見えるものに非常に近い名前が付けられている場合があります。
これらのモデルもこの問題を引き起こす傾向があります。 おそらく、あなたはグーグル検索を介してこの問題に遭遇しました。

例については、 https://github.com/gregbell/active_admin/issues/959を参照して

このページは役に立ちましたか?
0 / 5 - 0 評価