You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7中DELETE请求被识别为GET的路由错误求助

Rails DELETE请求被识别为GET的路由错误排查

错误信息

No route matches [GET] "/home/delete_operation/1"

相关配置代码

视图(ERB)

<%= 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" %>

控制器(HomeController)

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

路由(routes.rb)

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

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"

排查与解决方法

  1. 调整JS加载顺序:
    你当前混用了Importmap和Sprockets语法,jquery_ujs必须在Turbo之前加载。Turbo会接管页面请求处理,晚于jquery_ujs加载才能让jquery_ujs正常处理method: :delete的链接。修改Application.js:

    //= require jquery3
    //= require popper
    //= require bootstrap-sprockets
    //= require jquery_ujs
    import "@hotwired/turbo-rails"
    import "controllers"
    //= require chartkick
    //= require Chart.bundle
    import "chartkick"
    import "Chart.bundle"
    
  2. 检查前端依赖加载状态:
    打开浏览器开发者工具,查看Console是否有jQuery或jquery_ujs相关报错,再到Network标签确认jquery_ujs.js是否成功加载。如果加载失败,检查importmap.rb或assets配置是否正确引入了依赖。

  3. 验证链接生成的HTML属性:
    查看页面源码,确认生成的<a>标签包含data-method="delete"属性——这是jquery_ujs将GET请求转为DELETE的核心标识。如果没有这个属性,说明link_to的method: :delete参数没有生效,可能是JS依赖未正确加载。

  4. 改用button_to(无JS依赖方案):
    如果不想纠结JS加载问题,直接用button_to替代link_to,它会生成一个隐藏表单来发送DELETE请求,不需要依赖jquery_ujs或Turbo:

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

内容的提问来源于stack exchange,提问作者TEJINDER SINGH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:32:42