为什么Rails“link_to”不适用于删除操作?

时间:2010-12-15 04:29:19

标签: ruby-on-rails ruby-on-rails-3 link-to

index.html.erb我显示所有产品,每个产品旁边都有EditDelete个动作:

<% @products.each do |product| %>
  ...
  <%= link_to("Edit", edit_product_path(product.id), :class => 'action') %>
  <%= link_to("Delete", product, :method => :delete, :class => 'action') %>
  ...
<% end %>

Edit链接正常。但是,Delete链接不起作用。我收到以下错误:

Unknown action
The action 'show' could not be found for ProductsController

我想这是因为请求方法是GET而不是DELETE。但是,如果我明确设置:method => :delete,我不知道为什么会发生这种情况。

routes.rb非常简单:

root :to => "products#index"
resources :products

我启用了Javascript。

请建议。

4 个答案:

答案 0 :(得分:11)

您是否在rails.js中指定了javascript_include_tag?这是不显眼的DELETE方法的必要条件。如果您使用的是jQuery,那么就有solution for that too.

答案 1 :(得分:5)

不要忘记在jquery_ujs文件中加入application.js

//
//= require jquery
//= require jquery_ujs
// ...

答案 2 :(得分:2)

您的删除链接中必须是product_path(product)而不是product

答案 3 :(得分:0)

我有同样的问题 - 实际上我已经改变了我的旧&#39;删除&#39;采取行动摧毁&#39; - 但忘了如果你使用SSL ..(例如ssl_required:destroy)