问题标签 [hotwire-rails]
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.
jquery - 如何设置 Rails UJS 和 Turbo?
我对运行旧的 jQuery 代码片段和 Rails UJS 以及 Turbo 到底需要做什么感到困惑。
DHH 在 6 月份添加了这个 PR,它本应提高兼容性,但它缺乏有关设置应如何工作的详细信息。
我的应用程序中仍然有一堆旧的 jQuery 和 UJS 片段,但我也在尝试迁移到 Turbo。我最初试图完全放弃 UJS,但一次太多了。此时,我正在使用 Webpacker 运行 Rails 6.1.4.1,并且我的 Gemfile 中没有任何 UJS gem。
升级页面说:
“Rails UJS 可以直接从 Rails 框架提供,也可以通过经典的 jquery-ujs 插件提供。”
这是否意味着 UJS 现在已内置到 Rails 中,而不是单独的 gem?或者我应该添加gem 'jquery-rails'
到我的 Gemfile 中吗?
我的 package.json 呢?我现在需要回去,yarn add jquery-ujs
如这里所示?
application.js 呢?我之前在这里导入了@rails/ujs,比如:
当我添加 Turbo 时,我注释掉了这些行。它们是必要的还是没有的?
关于 jQuery,我拼凑在一起(从其他网站粘贴)一种使用$
全局的方法:
这不再需要了吗?
编辑以包含 package.json 和 application.js 的依赖项部分...
package.json
application.js
ruby-on-rails - 使用 sprocket 将 Hotwire 添加到现有的 Rails 6.1 应用程序
我正在尝试使用 sprockets 应用程序升级现有的 Rails 6.1 以使用刺激。我安装了
javascript_importmap_tags
Firefox 开发人员工具中出现此错误的原因:
这应该与链轮一起工作吗?我有importmap-rails (0.7.6)
,stimulus-rails (0.4.2)
ruby-on-rails - JS/Ajax 表单如何与 Rails 中的 HotWire 一起使用?
我看到了一种运行 javascript 的新方法,而不是 rails_ujs。但乍一看,它可能没有相同的功能。
是否可以通过 Stimulus/Turbo(Hotwire)返回转义的 html/partial 以进行响应?动态/ajax/远程表单是什么样的?
*这个问题可能也适用于旧版本的 Rails。在 Rails 7 中,这是首选的默认方法。
hotwire-rails - 如何重新加载单个涡轮帧并更新 url?
我试图做一个不涉及任何特定服务器端技术的最小示例。所以我刚刚用 bash 生成网页并用 cgi 提供它。
这将创建一个如下所示的网页:
然后,当您单击 turbo frame reloader 链接时,您会得到以下信息:
幸运红利号码没有改变,因为它只加载了turbo frame,但是turbo frame里面显示的查询字符串号已经更新了。
整页 Turbo 链接执行此操作:
它会更新幸运红利号码(turbo 框架之外的内容)并更新 url。(但我确信它工作正常。我已经检查了网络选项卡。它每次只进行一次提取。)
我想做的事:
我想要一个只更新涡轮帧的链接(在我的示例中保持幸运奖金数字不变)但也更新 url。我猜这个用例是如果你有一个始终保持不变的横幅或菜单,但是一个主 turbo 框架,其中包含应该对应于 url 的所有页面特定内容。
所以在这个例子中,我希望看到页面上的查询字符串和实际的查询字符串更新,只留下“幸运奖金号码”不变。
ruby-on-rails - 如何转换 minitest 创建测试以适应 turbo_stream?
在 minitest 中,在 Hotwire 之前,创建测试可能如下所示:
将 create controller 操作更改为 respond_to :turbo_stream 后,上述测试将不再正确执行。我试过简单地将 format: :turbo_stream 作为参数哈希的一部分传递......但是,这也不起作用。
必须有一种 Rails 7 方法来测试它。Minitest 可能尚未针对这些新功能进行更新。
有没有人为这种新格式更新了他们的测试?
ruby-on-rails - Hotwire Turbo 不替换涡轮框架,抛出警告:响应没有匹配元素
我开始在 Rails 6 中使用 Hotwire 和 Turbo,并且遇到了 Turbo 无法替换我的涡轮框架的问题。我收到以下错误消息:Response has no matching <turbo-frame id="experiments"> element
。
我通过控制器操作在页面上呈现以下内容:
这会正确地将请求发送到/labs/experiments
,并且当我检查我的网络请求时,会从我的控制器返回以下内容:
但是,响应并未在我的涡轮框架内呈现,而是我收到控制台日志警告:Response has no matching <turbo-frame id="experiments"> element
。
任何帮助表示赞赏:)
ruby-on-rails - 表单响应必须使用 link_to 重定向到另一个位置
我正在使用带有 hotwire-rails 的 rails 6.1.x
我想知道您是否曾经经历过以下情况:
我有一个页面,我有这样的 link_to:
在页面顶部,我启用了 turbo:
<%= javascript_pack_tag 'client', 'data-turbo-track': 'reload' %>
现在,如果我单击链接,则会收到错误消息:
Firefox 控制台中的“错误:表单响应必须重定向到另一个位置”
什么也没有发生。
如果我删除“方法::get”部分,那么它工作正常。
你知道为什么会这样吗?真是令人费解。
ruby-on-rails - 仅当创建或更新具有特定名称值的记录以及特定部分时,如何在 Rails 6(热线)中发送 broadcasts_to?
我有一个带有三个数字整数指标的 Rails 6 View:速度、温度和压力。这些值作为序列化对象存储在 SavedObject 模型中。并在控制器中使用它们各自的实例变量传递给视图。@速度 @温度 @压力
问题
如何为每个序列化对象更新发送单独的广播(使用涡轮热线),以“名称”列(如“设备 2 温度”)为条件,以便每个广播达到自己的部分?(同一视图中有三个不同的局部)
这是模型
这些是列。
记录示例
ruby-on-rails - Hotwire 模态表单无法正确渲染 Flatpickr
我有一个模态表单,可以很好地通过热线创建新的详细信息记录。这些字段中有 flatpickr 日期字段和两个 flatpickr 时间字段。如果我有验证错误,表单会在模式内显示错误,但 flatpickr 输入会重置为没有 flatpickr 作为文本字段。当显示验证错误时,如何确保它再次呈现 flatpickr 字段?
控制器创建:
create.turbo_stream.erb
形式: