我创建了一个新的脚手架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_to
到button_to
的更改也无济于事。
有人知道它还能是什么吗?如果您需要更多详细信息,请通知我,我将很乐意添加它。
非常感谢。
答案 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才能做到这一点。