Rails 3 link_to(:method =>:delete)不起作用

Mel*_*emi 11 routing ruby-on-rails rails-routing

在Rails中的动词遇到了麻烦 ......

查看资源(狗)的页面has_many(跳蚤).嵌入在狗中的show.html.haml是一个render @dog.fleas自动(?)查找并使用"fleas/_flea.html.haml"中的模板来列出与所述狗相关的每个跳蚤的调用.

这显示正确.噢!现在,在每个跳蚤的旁边,我放了一个"Kill Flea"链接进入网址://localhost:3000/dogs/1/fleas/7.由哪个生成:

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

但是每次点击该链接都没有确认...并且它会呈现跳蚤的show.html页面.这是因为如果它使用GET/dogs/1/fleas/7,而不是删除?!?

ps-不担心蜘蛛和机器人在我的数据库中删除东西......我只是想学习Rails ......并了解发生了什么

Jai*_*yer 25

Rails 3现在使用不引人注目的JavaScript.在Rails 2.3中,erb会在onClick事件中将所有混乱的javascript直接推送到链接本身.现在javascript已经移出链接,并进入外部js文件.确保你的布局中有这个:

<%= javascript_include_tag :all %>
Run Code Online (Sandbox Code Playgroud)

如果你有这个,可能会有更深层次的问题让你的javascript无法运行,但这是开始的地方.让我知道结果如何.


All*_*hun 18

嗨,你也可以试试这个:

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" %>
Run Code Online (Sandbox Code Playgroud)


Vic*_*sto 12

检查你<%= javascript_include_tag %>application.html.erb

也许你错过了"应用程序"js

它必须至少看起来像

<%= javascript_include_tag "application" %>
Run Code Online (Sandbox Code Playgroud)

  • 老问题..但我会给你一块骨头...... +1 (2认同)