11

在 Rails 中的动词有问题...

查看具有许多(跳蚤)的资源(狗)的页面。嵌入到狗中的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")

但是每次单击该链接时都没有确认...并且它会呈现跳蚤的show.html页面。就好像它使用GET/dogs/1/fleas/7不是DELETE?!?

ps-不担心蜘蛛和机器人会删除我数据库中的内容...我只是想学习 Rails ..并了解正在发生的事情

4

6 回答 6

25

Rails 3 现在使用不显眼的 javascript。在 Rails 2.3 中,erb 只会在 onClick 事件中将所有乱七八糟的 javascript 塞入链接本身。现在 javascript 已从链接中移出,并移至外部 js 文件中。确保你的布局中有这个:

<%= javascript_include_tag :all %>

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

于 2010-12-03T03:42:13.487 回答
18

你好,你也可以试试这个:

应用程序.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" %>
于 2013-04-26T11:01:01.523 回答
12

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

也许您缺少“应用程序”js

它必须至少看起来像

<%= javascript_include_tag "application" %>
于 2012-02-27T03:42:05.797 回答
2

在这里,我没有使用 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 

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

现在它工作正常。

于 2013-12-17T06:51:47.393 回答
1

检查 application.html.erb 是否

<%= javascript_include_tag :application %>

不是:

<%= javascript_include_tag :default %>
于 2013-10-07T13:22:07.363 回答
0

看起来您的 link_to 方法不太正确。尝试改用此代码:

  <%= link_to 'Kill Flea', [flea.dog, flea], :confirm => 'Sure?', :method => :delete %>
于 2010-12-03T03:07:16.143 回答