【发布时间】:2022-08-14 13:40:00
【问题描述】:
在我的 Rails 7 应用程序中,我试图在用户按下“删除”按钮时显示确认消息。但是,当按下按钮时,它会立即删除记录而不显示确认提示。我正在使用设计来创建路线-我一直在尝试对此进行调查,并且似乎设计和/或 Turbo 的某种损坏功能正在破坏确认对话框?
这是我开始的:
<%= button_to \'Delete\', @friend, method: :delete, data: { confirm: \'Are you sure?\' }, class: \"btn btn-danger mx-1\" %>
这是删除记录就好了,它只是没有显示确认。以下是我尝试过的其他一些行,我认为应该可以正常工作,因为如果我理解正确,Turbo 应该随 Rails 7 一起安装:
<%= button_to \'Delete\', @friend, method: :delete, data: {turbo_method: :delete, turbo_confirm: \'Are you sure?\'}, class: \"btn btn-danger mx-1\" %>
<%= button_to \'Delete\', @friend, method: :delete, data: { turbo_confirm: \'Are you sure?\' }, class: \"btn btn-danger mx-1\" %>
然后我尝试创建一个名为friend_controller.js 的Stimulus 类并将其放在friends/app/controllers 文件夹中:
import { Controller } from \"@hotwired/stimulus\"
export default class extends Controller {
delete(event) {
let confirmed = confirm(\"Are you sure?\")
if (!confirmed) {
event.preventDefault()
}
}
}
并相应地更新了我的按钮:
<div class=\"d-flex\" data-controller=\"friends\">
<%= button_to \"Delete\", @friend, method: :delete, data: { action: \"click->friend#delete\" } %>
</div>
每个选项都完美地删除了记录,只是不显示确认消息。
我正在尝试按照 YouTube 教程将其构建为我的第一个 Ruby 应用程序,但该视频来自 2020 年,因此使用 Rails 6。我在大学学习软件开发,所以我想我我会挑战自己也将其更新到当前版本,而且,我受到挑战。这是我在完成本教程之前需要弄清楚的最后一件事。
在我看到的其他问题中,他们不需要发布 Gemfile 或生成的设计 friends_controller.rb,但如果我需要在此处发布它们,请告诉我。
非常感谢您提供的任何帮助!
编辑: - - -
这是我认为被要求的(生成的 HTML)。我通过打开我的页面、右键单击、选择“检查”并找到相关按钮的 HTML 部分来获得此信息:
<form class=\"button_to\" method=\"post\" action=\"/friends/1\">
<input type=\"hidden\" name=\"_method\" value=\"delete\" autocomplete=\"off\">
<button data-action=\"click->friend#delete\" class=\"btn btn-danger mx-1\" type=\"submit\">Delete</button>
<input type=\"hidden\" name=\"authenticity_token\" value=\"(long line of random letters)\" autocomplete=\"off\">
</form>
我删除了实际的真实性令牌,因为我认为这些应该保密。我知道这只是一个示例项目,但我不确定这是否是我的计算机独有的。感谢您在我学习期间对我的耐心等待!