2010-12-15 17 views
2

J'ai une action destructrice à effectuer, donc je pense que c'est une façon Rails de mettre de telles actions derrière un PUT ou un POST (donc link_to ne fonctionne pas parce que seulement GETs).Comment utiliser: confirmer avec button_to et: méthode: mettre?

J'ai ajouté un bouton comme celui-ci:

<%= button_to "Acknowledge", ack_something_path, :method => :put, :confirm => "Sure?" %> 

Les travaux de bouton (qui appelle l'action correcte), mais je ne peux pas obtenir Rails pour afficher une boîte de dialogue « confirmer ».

Des idées comment faire cela?

MISE À JOUR (Problem solved)

je ne mentionnais pas que j'incluais jquery ainsi que prototype HEAD (ne pense pas que ce serait la matière). MAIS, lorsque j'ai supprimé jquery, la boîte de dialogue de confirmation a été affichée.

Je ne sais pas pourquoi cela se produit, mais le problème est résolu (pour l'instant de toute façon). jquery et prototype n'aiment pas travailler ensemble semble-t-il.

+2

En fait, jQuery et Prototype définissent tous deux leur propre méthode '$'. Pour résoudre, appelez 'jQuery.noConflict()' après l'inclusion de la librairie jquery. Après cela, utilisez 'jQuery' pour la méthode $ de jquery, et utilisez' $ 'pour la méthode $ de prototype. – PeterWong

+0

Bon à savoir, merci! Aussi, quand j'ai inclus jQuery avant le 'javascript_include_tag: defaults', cela a marché (c'est-à-dire sans appeler' noConflict() ')! (Note à moi-même: http://www.alfajango.com/blog/rails-prototype-to-jquery/) – Zabba

Répondre

2

Je pourrais montrer la boîte de dialogue de confirmation quand je copie votre code à mon vue.

Avez-vous inclus le bon fichier javascript dans la section <head>? Le fichier js à public/javascripts/rails.js est nécessaire pour activer tous les effets js dans les méthodes d'assistance de vue.

Vous pouvez vérifier si <%= javascript_include_tag :defaults %> est dans le head ou non.

+0

J'ai vérifié ... le rails.js est inclus dans la page, et le dossier existe également. – Zabba