link_to删除url无法正常工作
我有以下link_to删除我的应用程序中的URL
:delete, :class => "delete", :confirm => "Are you sure ?"%>
它似乎没有工作。当我点击这个url时,它只是带我去展示路径。有人请告诉我如何解决这个问题。 谢谢。
你在使用jQuery吗? 如果是这样,我认为问题可能是您在没有更新的rails.js文件的情况下使用jQuery。
在这里下载rails.js: https : //github.com/rails/jquery-ujs/raw/master/src/rails.js将它放在你的javascripts目录中,覆盖默认使用rails的rails.js。
添加javascript包含行以包含它。
<%= javascript_include_tag "rails" %>
把它放在你的Jquery包含标签之后。 如果您不打算使用原型,您可能还想要解除javascript默认值。
我在我的应用程序中包含了jQuery UI,我发现删除现在正在显示,但是在执行上面的Resolved Issue之后。
确保这些行出现在application.js
:
//= require jquery //= require jquery_ujs
确保已打开java脚本。 否则:method => :delete
就像在Rails中显示一样。
如果您正在为博客使用restful路由,那么以下内容应该有效:
<%= link_to "Delete", @blog, :method => :delete, :confirm => "Are you sure ?"%>
您可以尝试使用’data-method’而不是:method。
<%=link_to "Delete",blog_path(@blog.id), 'data-method' => :delete, :class => "delete", :confirm => "Are you sure ?"%>
您可以在jquery_ujs.js上查看以下代码:
// Handles "data-method" on links such as: // Delete
为了使link_to
能够与delete
方法一起使用,Rails需要jQuery的不显眼的脚本适配器 。
-
确保你的Gemfile有
gem 'jquery-rails'
-
确保app / assets / javascripts / application.js具有
//= require jquery
//= require jquery_ujs
-
确保您的app / views / layouts / application.html.erb具有
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
在
head
标签内。 如果您不打算使用Turbolinks,请删除'data-turbolinks-track' => true
部分。
你应该使用
<%=button_to "Delete",blog_path(@blog.id), :method => :delete, :class => "delete", :confirm => "Are you sure ?"%>