在index.html.erb
我显示所有产品,每个产品旁边都有Edit
和Delete
个动作:
<% @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。
请建议。
答案 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)