问题标签 [ruby-on-rails-6.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
600 浏览

turbolinks - 为什么我的 Stimulus JS 控制器会触发两次?

所以,我有一个安装了 webpacker、vue、turbolinks 和刺激 js 的 Rails 应用程序。
我遇到的问题是,即使控制器只导入一次,即使我暂时禁用 turbolinksinitialize()功能以及connect()一个被调用两次的功能。
仅当我进行刷新时才会发生这种情况(即,不是在我第一次访问该页面时,而是仅在我执行页面重新加载时)。
奇怪的disconnect()是只被调用一次(当我离开页面时)

这很糟糕,因为我需要在初始化时修改 DOM,所以我添加了两次元素。有人对导致这种情况的原因和/或解决方案有任何线索吗?

编辑:application.js 按要求

组件/index.js

控制器/index.js

在每个文件中,如果我console.log只记录一次......
仅在刺激控制器中initializeconnect打印两次

这只发生在我重新加载页面时,而不是当我第一次访问它时。

0 投票
0 回答
51 浏览

ruby-on-rails - 如何在 Rails 上创建计时器

我正在使用 rails 6.1.3 创建锻炼计时器应用程序

我有随机发布视频,它将随机显示视频

控制器

意见

结果:

  1. 锻炼 1
  2. 锻炼 2
  3. 锻炼 3
  4. 锻炼 4
  5. 锻炼 5
  6. 锻炼 6
  7. 锻炼 7
  8. 锻炼 8
  9. 锻炼 9
  10. 锻炼 10

我想问的是:如果我想在屏幕上只显示锻炼 1 30 秒,然后移动到锻炼 2,这可能吗?屏幕将每 30 秒显示一次不同的锻炼。

有什么宝石推荐吗?谢谢之前

0 投票
1 回答
479 浏览

stimulusjs - 在页面的其他地方重复使用刺激动作?

我正在连接一个松弛的克隆(html/css)并拥有它,以便在我单击 x 时打开/关闭参考抽屉。我还想从导航区域打开/关闭它,并认为我可以采用相同的 link_to 并从页面的不同部分调用它。

但是当我这样做时,如果我从不同的目标中调用它,我会收到一个错误

如何使用数据目标中的代码来触发不同的数据目标?

即我想要工作的是

--navigation partial (link_to 不工作) --

-- 应用程序部分(link_to 有效) --

不知道我哪里出错了。我想只要被引用的目标是唯一的并且在页面上它应该从哪里调用它并不重要?

0 投票
2 回答
121 浏览

ruby-on-rails - 在 rails 6.1.3 中为 static_pages 控制器创建一个“资源”路由

这里的总新手^^所以我的页脚中有一堆静态页面,我想为其创建一条路线。现在,我正在使用 get 来创建这样的路线:

理想情况下,我试图将所有这些浓缩成这样的资源:

这是页面的页脚 li:

如何摆脱所有获取并将所有获取浓缩为一个资源?

红宝石 2.7.1 轨道 6.1.3

多谢 :)

0 投票
1 回答
1683 浏览

turbolinks - 使用 hotwire 广播到多个 turbo 流

我已经正确连接了 hotwire/turbo,以便在我页面的一个位置对单个模型执行 crud 操作,但我也想在页面的不同位置同时更新同一个模型。我以为我可以设置两个流,但它似乎不起作用。

根据我命名目标的方式,指定目标确实适用于创建操作,但不适用于更新和销毁。这是我认为应该工作但没有:

----位置1(“生物”流)----

----位置 2(“creatures_main”流)----

----常见的_creature.html.erb部分----

---- 生物.rb ----

当我的模型中有两个调用时会发生什么,创建操作将新创建的生物放置在位置 1 两次,两个中只有一个被更新,但无论它们在页面上的哪个位置,它们都被正确销毁。

0 投票
2 回答
108 浏览

ruby-on-rails - Rails 6 + Bootstrap - Link_to 注销会引发错误,但 button_to 工作正常。为什么会这样?

在将 Bootstrap 5 添加到我的 Rails 6 应用程序时,以前运行良好的注销链接会引发错误 <%= link_to "Log Out", destroy_user_session_path, :method => :delete %> AbstractController::ActionNotFound为 UsersController 找到)
我可以通过将 link_to 替换为 button_to 来解决此问题。但是为什么 link_to 会抛出错误呢?

0 投票
1 回答
693 浏览

ruby-on-rails - Rails 6 - db:migrate NameError:错误的常量名称

我是 Rails 新手,想使用 rails 迁移脚本向我的开发数据库添加一个表。跑步后rails db:migrate,我得到了NameError: wrong constant name 2040[MyMigrationClassName].

我以为我使用了保留的类名,所以我更改了迁移脚本中的名称 + 与之关联的视图、模型和转换器,但同样的错误。

为什么会这样?提前感谢您的帮助。

这是错误:

这是迁移脚本:

我已经有了将与表关联的模型Converter、控制器ConverterController和视图。converter/*.html.erb

我使用 Rails 6.1.3、Ruby 3.0 和 postgreSQL 作为数据库。我在 Ubuntu 20.04 LTS 中。

这是详细的错误跟踪:

0 投票
0 回答
32 浏览

ruby-on-rails - Rails 6嵌套属性,销毁记录的唯一性验证失败

我在验证嵌套属性的唯一性时遇到了问题。我有 2 个模型

brand_id 对于CompanyStoreBrand应该是唯一的。如果我从一家商店删除品牌并分配给另一家商店,则会引发异常,因为它没有被破坏。以下是我发送的参数

我在 stackoverflow 上看到了很多解决方案,但其中一些效率低下,或者不支持此标准。有没有其他方法可以实现这一目标?

0 投票
0 回答
220 浏览

ruby-on-rails - 将 ActiveStorage 资产从一个 S3 存储桶迁移到另一个

我正在尝试将大量 ActiveStorage 图像从旧 S3 存储桶迁移到新存储桶。我不太清楚为什么,但似乎所有的校验和都是无效的,因为迁移的资产都不起作用(我也从 Rails 5.2 升级到 6.1 并为 ActiveStorage 运行了变体迁移)。

我明白URI::InvalidURIError (bad URI(is not URI?): nil)了,尽管一切都已正确设置,但它仍会退回到本地存储。它生成一个到 404 的 localhost 链接。

Disk Storage (36.0ms) Generated URL for file at key: yyTi9oJYzd7rTqEQeE12qnXX ()

而如果我上传一个全新的资产,它就可以正常工作并创建一个到 S3 的有效链接,所以我知道 S3 设置正确。

使用 S3 链接到存在的图像!

我假设这是一个校验和问题,因为密钥在那里并且在 S3 上有匹配的文件(它适用于新图像)。有没有办法可以重新生成所有校验和?除非有人对为什么这些无法正确生成有其他想法?

谢谢!

0 投票
0 回答
35 浏览

ruby-on-rails-5 - 从 Rails 5.1.4 升级到 Rails 6 时出现问题

我正在尝试使用 ruby​​ 3.0 从 Rails 5.1.4 升级到 Rails 6.1.1。我执行bundle install了成功运行的操作,但是当我尝试使用rails db:create创建数据库时,我遇到了附加屏幕截图的问题。我认为问题出在无法加载宝石的zeitwerk上。

我尝试Bundler.require(*Rails.groups)从 application.rb 中删除以更深入地调试问题,但后来我遇到了另一个问题,例如,找不到“Bullet”。Rails 日志