Rails 3.2中的销毁链接显示数据而不是删除它

时间:2013-05-05 17:56:28

标签: ruby-on-rails ruby-on-rails-3 scaffolding destroy

我创建了一个新的脚手架rails generate scaffold scores score:integer route_id:integer并运行了rake db:migrate

这很好用,但是当我进入乐谱页面删除一些数据时,删除链接会以某种方式显示视图详细信息,但不会删除它。我还将链接与其他一些项目进行了比较,它看起来几乎相同,只是它这次不起作用。

这就是我在index.html.erb页面中的内容:

<td><%= link_to 'Destroy', score, method: :delete, data: { confirm: 'Are you sure?' } %></td>

我在这个网站的一些帖子中发现gem文件需要包含gem 'jquery-rails'所以我检查了它就在那里。我也再次运行bundle install,但没有变化。 从link_tobutton_to的更改也无济于事。

有人知道它还能是什么吗?如果您需要更多详细信息,请通知我,我将很乐意添加它。

非常感谢。

4 个答案:

答案 0 :(得分:1)

有时会发生这种情况,因为您的应用程序中未包含jquery_ujs。打开浏览器控制台并检查是否包含jquery_ujs或是否多次包含它。

答案 1 :(得分:1)

我遇到了同样的问题,只有在我将jquery和jquery_ujs添加到我的页面后才设法解决它:

<%= javascript_include_tag "jquery" %>
<%= javascript_include_tag "jquery_ujs" %>
<%= javascript_include_tag "application" %>

我很可能遇到资产管道问题,因为我在application.js中请求了它们,但是当它们没有在页面上明确请求时它不起作用。 在我的application.js中我有:

//= require_jquery
//= require_jquery_ujs
//= require_tree .

答案 2 :(得分:0)

我猜测,因为您提供资源,method: :delete被覆盖或忽略。你能试试吗?

<td><%= link_to 'Destroy', destroy_score_path(score), data: { confirm: 'Are you sure?' } %></td>

以下是link_to的文档以供参考: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

答案 3 :(得分:0)

简单。 您需要在application.html.erb中包含名为rails.js的jquery_ujs。 我之前有这个问题。 Rails需要rails.js才能做到这一点。