Activeadmin: Comment puis-je sélectionner des enregistrements de modèle par requête personnalisée ?

Créé le 6 févr. 2013  ·  3Commentaires  ·  Source: activeadmin/activeadmin

Bonjour,

J'ai le problème suivant. Lorsque j'essaie de sortir des enregistrements de modèle, je souhaite exclure les enregistrements dont le champ "rejeter" est égal à "FAUX". Comment pourrais-je faire cela ? Est-ce possible sans 'default_scope' ?
Mon exemple de code :

ActiveAdmin.register Approval do
  index do 
      column :id
      column 'Пользователя', :user
      column 'Заапрувил член клуба', :member
      column :dismiss
      default_actions
  end
end

Commentaire le plus utile

Tnx. Solution:

ActiveAdmin.register Approval do
  index do 
      column :id
      column 'Пользователя', :user
      column 'Заапрувил член клуба', :member
      default_actions
  end
  controller do
    def scoped_collection
      Approval.where(dismiss: false)
    end
  end
end

Tous les 3 commentaires

Vous pouvez remplacer la méthode scoped_collection dans votre contrôleur de ressources pour récupérer les ressources avec une requête personnalisée.

ActiveAdmin.register Approval do
  index do 
      column :id
      column 'Пользователя', :user
      column 'Заапрувил член клуба', :member
      column :dismiss
      default_actions
  end

  def scoped_collection
    Approval.where(dismiss: false) # this could be   **Approval.dismissed**
  end
end

J'ai essayé de remplacer scoped_collection comme vous l'avez écrit. Mais tous les enregistrements sont toujours sortis. Voici la requête qui en résulte :

where Approval Load (0.2ms)  SELECT "approvals".* FROM "approvals" ORDER BY "approvals"."id" desc LIMIT 30 OFFSET 0

Tnx. Solution:

ActiveAdmin.register Approval do
  index do 
      column :id
      column 'Пользователя', :user
      column 'Заапрувил член клуба', :member
      default_actions
  end
  controller do
    def scoped_collection
      Approval.where(dismiss: false)
    end
  end
end
Cette page vous a été utile?
0 / 5 - 0 notes