Comment ajouter un message de confirmation avec link_to Ruby on rails
Je voulais ajouter un message de confirmation sur link_to fonction avec Ruby.
= link_to 'Reset message', :action=>'reset' ,:confirm=>'Are you sure?'
Des idées pourquoi il ne fonctionne pas?
- Double Possible de Rails - Comment mettre un popup de confirmation sur un f.soumettre?
- Cela ne semble pas être une copie exacte de la nomination exemplaire. Le modèle demande comment ajouter de la confirmation de la soumission d'un formulaire; cette question demande comment ajouter de la confirmation d'un lien.
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez vérifier que votre mise en page ont jquery_ujs.
Les meilleures pratiques à faire en l'incluant dans votre principal application.js:
Vérifier que vous avez inclus application.js dans votre mise en page:
Alors que, dans le mode de développement, d'afficher votre source html et vérifier jquery_ujs.js existe.
Exécuter votre serveur et vérifier votre balise de lien a de données confirmer valeur, par exemple:
Si toutes ces étapes sont corrects, tout devrait fonctionner!
Remarque: cochez cette RailsCast http://railscasts.com/episodes/136-jquery-ajax-revised
Je peux me tromper, mais vous ne spécifiez pas un controller avec le
:action
option. Avez-vous essayé le suivant? En supposant que vous avez unmessages
ressources configuré dans votre itinéraire:MODIFIER: ci-Dessus est obsolète. Rails 4.0 maintenant accepte l'invite comme un attribut de données. Voir la doc ici (Merci @Ricky).
…, data: {confirm: 'Are you sure?'}
:confirm
ne semble pas fonctionner.'data-confirm'
fonctionne, mais il n'est pas vraiment le courant "les rails de chemin". En d'autres termes: quelle est la meilleure façon pour moi de faire une remarque de ce?Ne me souviens pas comment cela a été fait dans Rails 3, mais dans les Rails 4, vous pouvez tout simplement:
{
et}
avant ladata - confirm
partie était ce que j'avais à faire.Essayez ceci:
ou, pour être plus clair
Reportez-vous http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
Vous verrez que il y a 3 paramètres, lorsque vous donnez l'url, comme les options de
{:action => ..., :controller => ...}
En ruby, si le dernier paramètre dans un appel de fonction est une table de hachage, vous n'avez pas besoin de l'envelopper dans
{}
caractères (en d'autres termes, vous pouvez omettre que dans le cas, si le hash est le dernier paramètre), de sorte que le code que vous avez fournies seront interprétés comme un appel de fonction avec seulement 2 paramètres,'Reset message'
chaîne et{:action=>'reset', :confirm=>'Are you sure?'}
de hachage et la:confirm=>'Are you sure?'
sera interprété comme uneurl_option
au lieu d'unhtml_option
data-*
sont attributs de données personnalisés introduite en HTML5 qui servent de zones de stockage pour les données privées.data-confirm
est utilisé par les rails pour faire de la pop-up apparaissent lorsque le lien est cliqué.<%= javascript_include_tag :defaults %>
dans la mise en page ou de la page. Sans que cela ne marchera pas.Un bouton de lien où
article_path
est le préfixe et(article)
est le passage duid
qui est requis par lemethod: :delete
méthode.La dernière partie de l'codes ajoute une confirmation msg.
En quelque sorte ne fonctionne pas celles seulement le code du navigateur Safari, Donc j'ai été impliqué bouton...
n'oubliez pas d'ajouter le chemin d'accès, entre le "message de réinitialisation" et données
Regardez votre javascript_include_tag et il devrait fonctionner correctement:
:confirm
est maintenant obsolète, donc vous devez utiliser soit"data-confirm" => ...
oudata: { confirm: ... }
.regarder cette railscasts la vidéo pour une meilleure compréhension.
http://railscasts.com/episodes/205-unobtrusive-javascript
rails de la documentation pour link_to helper.
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
Tout d'abord, nous avons besoin de comprendre ce que Js paquet de répondre à ce genre d'alertes en application rails. Donc, pour cela, jquery_ujs paquet est responsable pour montrer les alertes dans les rails.
De sorte que vous devez avoir jquery & jquery_ujs dans votre application.js fichier.
Maintenant, nous avons besoin de confirmer, que les application.js le fichier est inclus dans votre mise en page ou pas. Par défaut le fichier de mise en page reste en application.html.erb dans la mise en page de dossiers de vues.
Suivant le lien doit avoir des données-confirm & données-méthode d'attributs que
Dans erb, ce qui peut être écrit comme,
Cela devrait fonctionner si tout est aligné dans le même mode.