新 Rails 7 Turbo 应用程序不显示数据-turbo-确认警报消息不会触发(turbo-rails 7.1.0 和 7.1.1)

New Rails 7 Turbo app doesn't show the data-turbo-confirm alert messages don't fire (turbo-rails 7.1.0 and 7.1.1)

2021 年或 2022 年创建的新 Rails 7 个应用程序,当我单击带有 data-turbo-confirm 的表单时,未显示警告消息。

<%= form_with url: root_path(),  data: {'turbo-confirm': "Are you sure you want to submit this form?"},
               method: :delete do |f| %>
  <%= f.submit "Delete".html_safe, class: "delete-apple-button btn btn-primary btn-sm" %>
<% end %>


<br />
<%= turbo_frame_tag "apples-list"   do %>
  nothing has happened yet
<% end %>

产生的HTML是

页面加载到:

当您点击删除时,没有显示警告:

预期结果: • 确认按钮操作的提醒消息

实际结果: • 未显示警报

如果您在本地为 turbo-rails

安装了 gem 版本 7.1.0 或 7.1.1,就会发生这种情况

这些 gem 号码在 10 月份被意外推送到 Rubygem,然后被猛拉。但是,由于捆绑器在设置新的 rails 应用程序时将默认使用 Rails gem 的 最高编号 ,因此它将选择 turbo-rails version 7.1.0 or 7.1.1 , 会显示这个缺陷

gem 已被抽出,因此这只会影响您在 2021 年 10 月和抽出日期之间开发 rails 应用程序。

修复您的计算机: gem uninstall turbo-rails

Bundler 将提示您卸载哪个版本:

如果您安装了两个 gem 版本,则需要重复此步骤。

然后,bundler 将不会使用该版本制作新应用。

但是,如果您已经生成了一个应用程序,它将被锁定到错误的版本。要修复,请在 Gemfile

中明确指定版本
gem "turbo-rails", "~> 1.0"

你可以用js来做。

代码适合我。

function confirmDestroy(message) {
  if (!confirm(message)) {
    return false;
  }
}
<div>
  <%= link_to "Edit this post", edit_post_path(@post) %> |
  <%= link_to "Back to posts", posts_path %>

  <%= button_to "Destroy this post", @post, method: :delete, onclick: "return confirmDestroy('Are you sure want destroy this post?')" %>
</div>