9

在我显示所有产品,以及我拥有的每个产品和操作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

4 回答 4

12

您是否已rails.js在 a 中指定javascript_include_tag?这是不显眼的DELETE方法起作用所必需的。如果您使用的是 jQuery,那么也有一个解决方案。

于 2010-12-15T04:37:19.510 回答
5

不要忘记包含jquery_ujs在您的application.js文件中:

//
//= require jquery
//= require jquery_ujs
// ...
于 2013-03-19T10:24:57.613 回答
2

它需要product_path(product)而不是product在您的删除链接中。

于 2010-12-15T04:33:47.553 回答
0

我有同样的问题-实际上我已将旧的“删除”操作更改为“销毁”-但忘记了如果您使用 SSL ..(例如 ssl_required :destroy)

于 2011-04-16T09:24:15.363 回答