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

kqhtkvqz  于 2023-03-13  发布在  Ruby
关注(0)|答案(3)|浏览(176)

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为

页面加载到:

单击“删除”时,不会显示任何警报:

预期结果:·确认按钮操作的警报消息
实际结果:·不显示警报

twh00eeo

twh00eeo1#

您可以使用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>

axzmvihb

axzmvihb2#

如果您本地安装了gem版本7.1.0或7.1.1 forturbo-rails,则会发生这种情况
这些gem编号在10月份被意外地推送到Rubygems,然后又被删除了,然而,由于bundler在设置新的rails应用时会默认使用Rails gem的 * 最高编号 *,因此它会选择 turbo-rails 7.1.0或7.1.1版本,这将显示此缺陷
宝石被猛拉,所以这只会影响你,如果你是在2021年10月和猛拉日期之间开发铁路应用程序。
要修复计算机:gem uninstall turbo-rails
Bundler将提示您要卸载的版本:

如果同时安装了两个gem版本,则需要重复此步骤。
然后,bundler将不会使用该版本制作新的应用程序。
但是,如果您已生成应用程序,则该应用程序将锁定到错误的版本。要修复此问题,请在Gemfile中明确指定版本

gem "turbo-rails", "~> 1.0"

enyaitl3

enyaitl33#

我在编写Ruby on Rails指南here时遇到了同样的问题。
沿着我尝试东西的过程中,我偶然提到了turbo-rails gem。我找到了一个有效的解决方案:
1.在application.html.erb文件中添加以下内容:

<%= javascript_include_tag "turbo", type: "module" %>

1.将gem "turbo-rails", "~> 1.0"添加到宝石文件
1.运行bundle install
1.运行bin/rails turbo:install
注意:不确定最后一步是否必要,但我遵循了here中的说明
使用这些步骤,导轨指南中的代码将与确认对话框一起工作。🎉

相关问题