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 ?"%>