Question

Je vais avoir problèmes avec mes verbes dans Rails ...

l'affichage d'une page pour une ressource (Dog) qui has_many (Fleas). Intégré dans le show.html.haml de chien est un appel à render @dog.fleas qui automatiquement (?) Trouve et utilise le modèle dans « puces / _flea.html.haml » à la liste chaque puce associée à chien dit.

affiche correctement. ouf! Maintenant, à côté de chaque puce que j'ai mis un lien « Kill Flea » qui va à une url: //localhost:3000/dogs/1/fleas/7. Ce qui est généré par:

= link_to("Kill Flea", [ flea.dog, flea ], :method => :delete, :confirm => "Sure? A bunny will die")

mais à chaque fois que vous cliquez sur le lien, il n'y a aucune confirmation ... et il rend la page show.html de la puce. il est comme s'il utilise GET sur /dogs/1/fleas/7 au lieu de Supprimer ?!?

PS- pas inquiet au sujet des araignées et des robots choses dans ma supprimer la base de données ... je suis juste essayer d'apprendre Rails..and comprendre ce qui se passe

Était-ce utile?

La solution

Rails 3 utilise le langage Javascript discret maintenant. Dans Rails 2.3, erb serait juste fourrer tout ce désordre javascript droit dans le lien lui-même, dans un événement onClick. Maintenant, le javascript a été déplacé hors du lien, et dans les fichiers js externes. Assurez-vous que vous avez dans votre mise en page:

<%= javascript_include_tag :all %>

Si vous avez cela, il pourrait y avoir des problèmes plus profonds garder votre javascript de courir, mais c'est l'endroit pour commencer. Faites-moi savoir comment il se trouve.

Autres conseils

Salut, vous pouvez aussi essayer ceci:

application.html.erb:

<%= javascript_include_tag 'jquery_ujs' %>

OR

<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", "jquery.rails.js" %>

Vérifiez votre <%= javascript_include_tag %> dans application.html.erb

Peut-être vous manque le js "application"

Il faut regarder au moins comme

<%= javascript_include_tag "application" %>

Ici, je ne suis pas en utilisant le javascript_include_tag: tous,: application, etc. J'utilise mes propres fichiers js, avec un autre nom personnalisé: javascript_include_tag: my_custom_file et moi avons eu aussi cette question. Et je ne suis pas en utilisant « = besoin jquery » dans le fichier, mais javascript / jquery fonctionne. Je pense que Rails comprend jquery par défaut. Ce que je fait est que je changé le

link_to "Logout", destroy_user_session_path, :method => :delete 

à

 form_tag destroy_user_session_path, :method => :delete, :id => "logout_form" 
   link_to 'Logout', "#delete", :onclick =>  "$('#logout_form').submit();"

Maintenant, sa fin de travail.

vérifier si application.html.erb

<%= javascript_include_tag :application %>

pas:

<%= javascript_include_tag :default %>

On dirait que votre méthode de link_to n'est pas tout à fait raison. Essayez d'utiliser ce code à la place:

  <%= link_to 'Kill Flea', [flea.dog, flea], :confirm => 'Sure?', :method => :delete %>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top