在 Rails 5 下,将 helper link_to 与方法 delete 一起使用会发出 get 和 object#show 而不是 object#destroy

Under Rails 5, using helper link_to with method delete issues a get and object#show instead of object#destroy

我正在迁移到 Rail 5.2.3,发现我的删除代码失败了。当我按下 "Delete Object" 按钮时,它会路由到 object#show 而不是 object#destroy。此代码在 Rails 4 下运行良好,但在 Rails 5.

下失败

html.erb模块包括:

<%= link_to('Delete Object', {action: :destroy, class: 'btn btn-warning kc-wide'}, method: :delete, data: {confirm: 'Are you sure?', disable_with: "Processing..."}) %>

生成的代码是:

<a data-confirm="Are you sure?" data-disable-with="Processing..." rel="nofollow" data-method="delete" href="/admin/objects/414?class=btn+btn-warning+kc-wide">Delete Object</a>

我终于诊断出问题所在 here (https://github.com/rails/rails/tree/master/actionview/app/assets/javascripts)。由于 rails-ujs 现在包含在 Rails 5 中,我从我的代码中删除了对它的引用。是的,旧的 gem 不应捆绑在 Gemfile 中。但是,要访问它,它仍然必须包含在 JavaScript 清单中,例如资产管道中的 application.js。

//= require rails-ujs