Rails 3 link_to (: method =>: delete) no funciona

Tengo problemas con mis verbos en Rails

viendo una página para un recurso (Perro) que tiene_muchas (Pulgas). Embebido en dog’s show.html.haml es una llamada para render @dog.fleas que automáticamente (?) Encuentra y usa la plantilla en “pulgas / _flea.html.haml” para listar cada pulga asociada con dicho perro.

esto se visualiza correctamente ¡Uf! Ahora, junto a cada pulga, he puesto un enlace “Mata pulga” que va a una URL: //localhost:3000/dogs/1/fleas/7 . Que es generado por:

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

pero cada vez que se hace clic en ese enlace no hay confirmación … y se muestra la página show.html la pulga. es como si estuviera usando GET en /dogs/1/fleas/7 lugar de DELETE ?!?

ps- no me preocupa que las arañas y los robots eliminen cosas en mi base de datos … solo estoy tratando de aprender Rails … y entiendo lo que está pasando

Rails 3 ahora usa JavaScript discreto. En Rails 2.3, erb simplemente metería todo ese javascript problemático en el mismo enlace, en un evento onClick. Ahora el javascript se ha movido fuera del enlace, y en archivos js externos. Asegúrate de tener esto en tu diseño:

 < %= javascript_include_tag :all %> 

Si tiene esto, podría haber problemas más profundos para evitar que su javascript se ejecute, pero este es el lugar para comenzar. Déjame saber cómo resulta.

Hola, también puedes probar esto:

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" %> 

Comprueba tu < %= javascript_include_tag %> en application.html.erb

Tal vez te estás perdiendo la “aplicación” js

Debe verse al menos como

 < %= javascript_include_tag "application" %> 

Aquí no estoy usando javascript_include_tag: all,: application, etc. Estoy usando mis propios archivos js, con otro nombre personalizado: javascript_include_tag: my_custom_file y también tuve este problema. Y no estoy usando ‘= require jquery’ en el archivo, pero javascript / jquery está funcionando. Creo que Rails incluye jquery por defecto. Lo que hice fue cambiar el

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

a

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

Ahora está funcionando bien.

compruebe si application.html.erb

 < %= javascript_include_tag :application %> 

no como:

 < %= javascript_include_tag :default %> 

Parece que tu método link_to no es del todo correcto. Intenta usar este código en su lugar:

  < %= link_to 'Kill Flea', [flea.dog, flea], :confirm => 'Sure?', :method => :delete %>