【问题标题】:Rails: DELETE method not working - GET triggeredRails:DELETE 方法不起作用 - 触发 GET
【发布时间】:2020-02-17 14:44:15
【问题描述】:

我正在为我的应用程序的一部分使用脚手架,现在检测到删除按钮不起作用。 使用以下链接

<%= link_to 'Destroy', user_certification, :confirm => "Are you sure?", :method => :delete %>

当我使用链接时,我收到了'show' action 回复。

日志

于 2020 年 2 月 17 日 14:37:45 开始为 ::1 获取“/user_certifications” +0000 UserCertificationsController#index 作为 HTML 处理

我在 gemfile 和 application.js 中加载了 JS

GEMFILE

gem 'sprockets-rails'
gem 'jquery-rails'

application.js

//= require jquery
//= require jquery_ujs
//= require rails-ujs

我检查了几个解决方案,但未能成功。也许有人有提示?

【问题讨论】:

  • 在终端运行 rails 路线,找到销毁路线。并在路线末尾添加“_path”。并且通常destroy routes有一些记录id,比如这个user_certification_path(user)
  • 我正在使用自动添加删除路由的资源命令。不幸的是,这不是由用户调用触发的。

标签: javascript activerecord ruby-on-rails-6


【解决方案1】:

我在使用 Ruby on Rails 6.1 时也遇到了同样的问题 后来发现原因是由于我在javascript文件中放置的Bootstrap行。 删除它后,销毁工作正常。

【讨论】:

    【解决方案2】:

    因此,当您通过 add yarn bootstrap jquery popper.js 添加引导程序,然后在 application.js 中导入引导程序时,它似乎与 @rails/ujs 冲突,因此删除功能是已禁用。

    只需从 application.js 中删除引导程序,添加 CDN 以使用引导程序,删除功能就可以正常工作。这也解决了将注销功能设计为相同的删除用户会话的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多