Default_actions dans activeadmin in rails ne fait pas le bouton «Supprimer» Créer un lien de détruire

StackOverflow https://stackoverflow.com/questions/7390470

Question

J'ai ceci:

ActiveAdmin.register User do
  index do
    column :email
        column :name
    column :role
    column "Last Sign In", :last_sign_in_at
        column :account
        column "Units" do |user|
            user.units.count.to_s
        end
    default_actions
end

La méthode default_actions doit créer les liens Show, modifier et supprimer. Il les montre mais le lien de suppression n'est qu'un lien vers l'action Show:

admin/users/1

Les spécifications indiquent qu'elle devrait créer un lien de suppression.

Je ne sais pas pourquoi ça a fait ça. J'ai donc essayé une alternative:

 column "Delete" do |user|
   link_to "Delete", destroy_admin_user_path(user)
 end

J'obtiens cette erreur:

undefined method `destroy_admin_user_path' for <div class="index_as_table"></div>:ActiveAdmin::Views::IndexAsTable

J'ai même essayé d'ajouter cela dans les itinéraires:

match "/admin/users/:id/destroy(.:format) " => "admin/users#destroy"

J'ai toujours la même erreur.

Je l'ai inclus dans application.html.haml:

        = javascript_include_tag :all

Encore les mêmes problèmes que ci-dessus.

Merci pour la réponse

Était-ce utile?

La solution

Avez-vous vérifié si le rails.js complet est ajouté au javascript? Utilisez Firebug pour inspecter le lien et voyez s'il a l'attribut Data-Method. Inspectez également les en-têtes HTTP et voyez si la demande est faite avec Supprimer.

Si la demande n'est pas faite à l'aide de "Supprimer", vous avez un problème avec vos javascripts. Vérifiez Rails.js pour l'intégrité et l'intégration jQuery. Vérifiez en outre vos actifs.

Vous pourriez-vous fournir plus de détails sur votre version Rails? Javascripts inclus dans la source HTML?

Essayez une autre chose, accédez à Assets / Javascripts / Application.js et ajoutez

// = exiger jQuery

en haut si vous utilisez 3.1

Autres conseils

C'est un peu tard mais le réel réel La raison pour laquelle votre lien ne fonctionne pas est parce que vous n'avez pas mis la méthode: dans votre lien et utilisé à la place "destrust_admin_user_path".

Essayez ceci à la place:

link_to "Delete", admin_user_path(user), :method => :delete, :data => {:confirm => "Are you sure?"}

C'est ce qui fonctionne pour moi, avec activeadmin.

J'ai eu ce problème lorsque j'ai mis à jour le joyau actif_admin, donc je l'ai corrigé en régénérant les actifs actifs_admin et maintenant l'action de destruction fonctionne bien.

rails generate active_admin:assets
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top