问题标签 [turbo]

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 回答
53 浏览

javascript - Ruby On Rails - CRUD - 销毁/删除不起作用?

我已经阅读了本教程的大部分内容,并且已经了解了添加删除文章功能的部分:

https://guides.rubyonrails.org/getting_started.html

...但只要点击“删除”链接,文章就不会被删除。没有任何反应,发送的是 GET 请求而不是 DELETE。

从 erb 文件:

从控制器:

在尝试了 SO 和各种网页中提到的解决方案之后(将以下内容添加到我的“application.html.erb”文件中:

...我收到此错误:

ActionView::Template::Error (The asset "application.js" is not present in the asset pipeline.

我做了一些挖掘并意识到应用程序脚手架(rails new blog在这种情况下)没有创建任何 Javascript 目录,更不用说向它们添加任何 JS 文件了。我可以自己添加它们,但我什至不知道 Rails 和/或 Turbo 正在寻找什么 JS 文件。查询?其他图书馆?

但是,理想情况下,我想知道如何正确构建应用程序,以便包含任何必要的 Javascript。

谢谢,布莱恩

编辑 我能够通过使用“非涡轮”删除项目的方法和使用“button_to”而不是“link_to”作为“删除”链接来获得删除功能。但是——我仍然想知道为什么教程中显示的应用程序不能按预期工作,以及如何使用链接而不是按钮来触发项目删除(更不用说为什么使用 turbo 不起作用)。

0 投票
1 回答
21 浏览

ruby-on-rails - 使用 Turbo Frames 在 Rails 中处理 HTTP 404 响应的最佳实践?

我正在思考 Turbo Streams 的工作原理,主要是作为一个思想实验。在构建一个简单的玩具应用程序后,我了解了基础知识。使用少量 Turbo Frames 可以完成很多事情,这非常强大。

能够用 Turbo Frame 响应并在 DOM 中替换正确的内容是很有趣的。但是,我注意到如果 Turbo Frame 中的链接响应 HTTP 404,它只会显示在错误控制台中。(可见页面上没有任何变化。)处理此类错误的最佳实践是什么?向用户提示链接断开的简单选项是什么?

0 投票
1 回答
42 浏览

ruby-on-rails - 带有涡轮框架的 Rails 主动链接样式

我有这样的链接:

g.title如果单击链接的结果在另一个框架中呈现, 我如何设置活动链接(活动词汇表)的样式?在此处输入图像描述

如果当前路径等于请求的路径,我尝试使用帮助器为链接提供一些类,但它不起作用。没有为链接提供“活动”类:

当使用浏览器地址栏中未显示的帧当前路径时,我尝试通过data-turbo-action" => "advance". 使用该浏览器在地址栏中有当前路径,但仍然链接没有“活动”类..

0 投票
1 回答
23 浏览

ruby-on-rails - Capybara 功能规格因 Turbo Drive 而失败

我正在尝试在我的 Rails 6.1 应用程序的几个页面上引入 Turbo Drive。

Ḯ 在将一些遗留的 JQuery 插件初始化从$(document).ready()调用移动到document.addEventListener('turbo:load', ..)调用之后,它已经按预期得到了。

但是,当我运行 Capybara 功能规范时,我可以从失败规范的屏幕截图中看到,比如 JQuery 插件没有像应有的那样初始化。测试失败的一个典型示例:

谁能帮我理解为什么这在功能规范中不起作用?在我看来,turbo:load事件根本没有被触发。


我试过的

检查浏览器日志

我启用登录驱动程序:

Selenium::WebDriver::Remote::Capabilities.chrome( "goog:loggingPrefs": { browser: 'ALL' } ).

.. 但是page.driver.browser.manage.logs.get(:browser)在失败的调用之前expect调用只会返回一个空数组。

也许我做错了?

确保 Capybara 在页面完成加载之前不会超时

Capybara.default_max_wait_time = 10

0 投票
0 回答
19 浏览

ruby-on-rails - Rails 7 和 Turbo

鉴于上面的代码,我想创建一个实时视图,以便在索引控件中来自@rides 的任何时间发生变化,视图也会发生变化。

控制器和视图中必要的修改是“链接”的

从概念上讲,我无法理解 turbstreams 如何与逻辑、视图和部分结合在一起

0 投票
0 回答
18 浏览

javascript - 如何在涡轮框架中渲染 Mermaidjs 图?

我有主页,我想在单独的框架中显示美人鱼图:

我有一个带有图表代码的框架(我简化了它):

但是图表没有渲染,我只在页面上看到了美人鱼代码。

0 投票
0 回答
29 浏览

ruby-on-rails - 您如何使用涡轮框架将对象创建表单替换为对象显示部分?

我有一个带有相应视图的模型和subscription_tier动作。我已经用涡轮框架包裹了每一个showedit

<%= turbo_frame_tag subscription_tier do %>

当我编辑现有订阅层并保存它时,turbo 框架会刷新并显示我保存的层,但我无法复制它来创建层。

我的新层级框架:

并且在new.html.erb

单击“添加层”按钮成功呈现表单,我可以保存对象,但在保存时涡轮框架被破坏并出现错误Response has no matching <turbo-frame id="new_tier"> element

我知道这是因为我的show部分是用 包裹的<%= turbo_frame_tag subscription_tier do %>,但我不知道如何协调这一点。