Default_actions dans activeadmin in rails ne fait pas le bouton «Supprimer» Créer un lien de détruire
-
29-10-2019 - |
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
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