Activeadmin: Erreur "La collection n'est pas une portée paginée" lors de l'ajout d'un before_filter

Créé le 6 avr. 2012  ·  3Commentaires  ·  Source: activeadmin/activeadmin

Salut à tous,

J'essaie d'ajouter un before_filter à l'action d'index afin que je puisse définir la variable d'instance dans before_filter et, espérons-le, lorsque l'action d'index sera appelée, elle vérifiera si la var est déjà définie. Et puis, si c'est le cas, utilisez-le plutôt que les valeurs par défaut d'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

Le problème est que j'obtiens ce message d'erreur :

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

Commentaire le plus utile

Certains modèles peuvent être nommés très près de ce qui semble être des mots réservés, par exemple core ou page.
Ces modèles ont également tendance à déclencher ce problème. Vous êtes probablement tombé sur ce problème via une recherche Google.

Voir https://github.com/gregbell/active_admin/issues/959 pour un exemple.

Tous les 3 commentaires

Si vous définissez la variable de collection d'instances manuellement, vous devrez la paginer manuellement, comme indiqué dans l'erreur. ActiveAdmin utilise des assistants de pagination sur la page d'index.

Certains modèles peuvent être nommés très près de ce qui semble être des mots réservés, par exemple core ou page.
Ces modèles ont également tendance à déclencher ce problème. Vous êtes probablement tombé sur ce problème via une recherche Google.

Voir https://github.com/gregbell/active_admin/issues/959 pour un exemple.

Cette page vous a été utile?
0 / 5 - 0 notes