ruby Rails 7 - Rails考虑了GET操作

0ve6wy6x  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(133)

我有一个操作模型,我试图使用delete方法删除一条记录。但我得到了一个路由错误。我不明白为什么Rails把删除操作看作是获取。下面是错误消息。

错误:No route matches [GET] "/home/delete_operation/1"

下面是我设置的逻辑。

查看:

<%= link_to 'Delete operation', home_delete_operation_path(id: operation.id), method: :delete, data: { confirm: 'Are you sure?', turbo: false }, class: "btn btn-dark btn-sm rounded-0" %>

控制器:

def delete_operation
    @operation = Operation.find(params[:id])
    @operation.destroy
  end

路线:

delete 'home/delete_operation/:id', to: 'home#delete_operation', as: :home_delete_operation

Rails使用JS进行路由。因此,在Application.js中附加代码

Application.js

// Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
import "@hotwired/turbo-rails"
import "controllers"
//= require jquery3
//= require popper
//= require bootstrap-sprockets
//= require jquery_ujs
//= require chartkick
//= require Chart.bundle
import "chartkick"
import "Chart.bundle"
ffdz8vbo

ffdz8vbo1#

在link_to标记中用这个data: { turbo_method: :delete, turbo_confirm: 'Are you sure?' }替换现有的data: { confirm: 'Are you sure?', turbo: false },它工作了。

相关问题