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

Mis*_*hko 9 ruby-on-rails link-to ruby-on-rails-3

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 %>
Run Code Online (Sandbox Code Playgroud)

Edit链接的作品确定.但是,该Delete链接不起作用.我收到以下错误:

Unknown action
The action 'show' could not be found for ProductsController
Run Code Online (Sandbox Code Playgroud)

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

routes.rb 非常简单:

root :to => "products#index"
resources :products
Run Code Online (Sandbox Code Playgroud)

我启用了Javascript.

请建议.

Rya*_*igg 11

你有rails.js指定javascript_include_tag吗?这是不显眼的DELETE方法工作所必需的.如果您正在使用jQuery,那么也有一个解决方案.

  • @Misha:下载src目录中的rails.js文件,并将其作为rails.js放入public/javascripts文件夹中.如果你正在使用jQuery,你必须*用等效的jQuery替换原型`rails.js`. (2认同)

Ben*_*ier 5

别忘了包含jquery_ujs在你的application.js文件中:

//
//= require jquery
//= require jquery_ujs
// ...
Run Code Online (Sandbox Code Playgroud)