我try 将用于定制标准alert 框的Sweet Alert 2个Java脚本库集成到一个Rails7应用程序中,但我收到了以下error message: "Swal is not defined." 我使用的是Ruby 3和rails 7.

我最初try 在我的Rails应用程序中使用"sweet-alert2-rails"gem,但目前没有可用的更新.因此,我try 使用导入映射来完成此任务,并通过运行以下代码行来完成此任务.

bin/importmap pin sweetalert2

最重要的是,我将下面的行添加到application.js

import Swal from "sweetalert2"

当我try 在我的view files中使用"甜蜜警示2"时,我遇到了上述问题.

Swal.fire(
  'Good job!',
  'You clicked the button!',
  'success'
)

为了将Sweet Alerts集成到我的Rails应用程序中,我使用了以下链接.

https://sweetalert2.github.io/

https://github.com/sweetalert2/sweetalert2

推荐答案

您在applation.js中使用import Swal from "sweetalert2"定义了Swal,然后try 在您的视图文件中使用它,所以这意味着没有定义swal.

以前,在Rails6中,我们使用"YAR INSTALL"添加了"sweet alert",并且出现了相同的错误.因此,要在rails 6或rails 7中解决这个错误,您需要在application.js中添加以下行.

import Swal from 'sweetalert2';
window.Swal = Swal;

添加window.Swal无疑会解决您在Rails7中的问题.


您可以在我的博客和GitHub存储库中找到参考资料.我是为rails 7.0.4和Ruby 3.1.0写这篇文章的.并且还实现了同一版本的代码.

博客:https://rutikkpatel.medium.com/sweet-alert-2-in-ruby-on-rails-7-3f4cffe1ea5f

GitHub存储库:https://github.com/rutikkpatel/Sweet-Alert-Rails

I hope that will help you with your issue.

Ruby-on-rails相关问答推荐

对Rails进行枚举不允许空值

在URL中将下划线更改为连字符Ruby on Rails

有没有一种方法可以点击一个按钮来冒泡到父元素?

ActiveRecord::声明在类别中无效#new

是否可以使用 Turbo 帧更新 Rails 表单输入字段值?

一对多关联 counter_cache 在 Rails 中无法正确重新加载

具有 IN 子句的参数化查询在 ruby​​-on-rails 的 blazer 工具中无法按预期工作

如何在测试期间为 Rails 应用程序启用 Rails.cache 会话对象

Rails:用于创建固定长度 char(12) 列的迁移

未初始化的常量 ActionDispatch::Session::EncryptedCookieStore (NameError)

是否有不涉及删除 Gemfile.lock 的在任何源中找不到 *gem*错误的修复?

在 Rails 应用程序中处理大文件上传的最佳方法是什么?

form_for 未定义的方法 `user_path'

为什么 Ruby on Rails 使用 http://0.0.0.0:3000 而不是 http://localhost:3000?

如何在同一个 Rails 控制器操作中处理多个 HTTP 方法

has_many :通过 class_name 和 foreign_key

Rails:弃用警告:您没有设置 config.secret_key_base

使用redirect_to后如何停止控制器执行? (使用导轨)

没有路由匹配缺少必需的键:[:id]

在 Rails 3 中突出显示当前页面的最佳方法? -- 有条件地将css类应用于链接