やあみんな、
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.
インスタンスコレクション変数を手動で設定する場合は、エラーに記載されているように、手動でページ付けする必要があります。 ActiveAdminは、インデックスページでページ付けヘルパーを使用します。
または、スコープを使用できます
https://github.com/gregbell/active_admin/wiki/Scoped-index-resource
例: https :
特定のモデルは、コアやページなど、予約語のように見えるものに非常に近い名前が付けられている場合があります。
これらのモデルもこの問題を引き起こす傾向があります。 おそらく、あなたはグーグル検索を介してこの問題に遭遇しました。
例については、 https://github.com/gregbell/active_admin/issues/959を参照して
最も参考になるコメント
特定のモデルは、コアやページなど、予約語のように見えるものに非常に近い名前が付けられている場合があります。
これらのモデルもこの問題を引き起こす傾向があります。 おそらく、あなたはグーグル検索を介してこの問題に遭遇しました。
例については、 https://github.com/gregbell/active_admin/issues/959を参照して