Rails 3 ссылка на (: method =>: delete) не работает

Я проблема с моими глаголами в Rails...

просмотр страницы для ресурса (Собаки), который has_many (блохи). Встроенный в собаку show.html.haml вызов render @dog.fleas, который автоматически(?) находит и использует шаблон в "fleas / _flea.формат html.haml", чтобы перечислить каждую блоху, связанную с указанной собакой.

это правильно отображает. уфф! Теперь рядом с каждой блохой я поставил ссылку" убить блоху", которая идет по url: //localhost:3000/dogs/1/fleas/7. Который генерируется:

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

но каждый раз, когда ссылке нет подтверждения... и это делает блоху

6 ответов


Rails 3 теперь использует ненавязчивый javascript. В Rails 2.3 erb просто засунет весь этот беспорядочный javascript прямо в саму ссылку в событии onClick. Теперь javascript был перемещен из ссылки и во внешние JS-файлы. Убедитесь, что у вас есть это в вашем макете:

<%= javascript_include_tag :all %>

Если у вас есть это, могут быть более глубокие проблемы, удерживающие ваш javascript от запуска, но это место для начала. Дай мне знать, как все обернется.


привет вы также можете попробовать это:

приложение.формат html.Эрб:

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

Проверьте <%= javascript_include_tag %> на application.html.erb

возможно, Вам не хватает "приложения" js

это должно выглядеть, по крайней мере, как

<%= javascript_include_tag "application" %>

здесь я не использую javascript_include_tag :all, :application и т. д. Я использую свои собственные JS-файлы с другим пользовательским именем: javascript_include_tag: my_custom_file, и у меня также была эта проблема. И я не использую '= require jquery' в файле, но javascript/jquery работает. Я думаю, что Rails включает jquery по умолчанию. Что я сделал, так это изменил

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

to

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

теперь работает нормально.


проверить, если приложение.формат html.Эрб

<%= javascript_include_tag :application %>

не так:

<%= javascript_include_tag :default %>

похоже, ваш метод link_to не совсем верно. Попробуйте использовать этот код:

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