我一直在浏览railstutorial.org的章节并使用Rails 3.1.3,因为我很疯狂和/或想要挑战。我设法很容易找出大多数版本的问题,但这个问题让我感到困惑了一段时间。
在10.4.2中,Michael Hartl使用以下代码删除用户:
<%= link_to "delete", user, :method => :delete, :confirm => "You sure?",
:title => "Delete #{user.name}" %>
如果您在浏览器中测试它(chrome),它将无法正常工作,而是将您发送到该用户页面。
如果包含这个内容,它应该有效:
<%= javascript_include_tag :defaults %>
但它失败了Rails 3.1(它应该适用于Rails 3.0,或者我听说过。)
答案 0 :(得分:3)
因此,对于所有人来说,使用Rails 3.1来解决问题,这就是解决方案。
<%= javascript_include_tag "application" %>
使用&#34;应用程序&#34;而不是:默认值解决了这个问题,删除和确认应该工作,现在回到编码!
特别感谢George Shaw对https://stackoverflow.com/a/8350158/1127011的回答。
如果您想知道,标题仅适用于鼠标悬停。
答案 1 :(得分:0)
HTML标记将始终触发GET方法。 Rails使用Javascript驱动程序替换HTTP谓词。在以下情况下,link_to方法将回退任何方法(post,put和delete)以获取(对应于show动作):
请参阅http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html
我怀疑是问题的第二个原因。确保包含jquery.js,application.js,jquery_ujs.js文件。
您可以尝试使用button_to而不是link_to,它可以创建一个允许在没有启用Javascript的情况下放置,发布和删除方法的表单。