问题标签 [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.
javascript - 处理数据禁用的热线方式是什么?
我开始在我的 Rails 应用程序中使用Hotwire,并实现了类似于教程视频的内容,其中提交了表单并刷新了页面的另一部分。就像在视频中一样,我必须实现自己的重置表单控制器:
重置表单中的值。表单看起来像:
在按钮中生成如下:
因为有一个data-disable-with
,当你按下按钮时,它会被禁用以避免双击提交,这很棒。问题是它this.element.reset()
不会重置它。
处理这个问题的正确方法是什么?
我不是在寻找解决方法,我知道很多,但我正在寻找解决这个问题的干净解决方案。
这是由 UJS 引起的按钮的禁用吗?这是否意味着不应在 Stimulus 应用程序中使用 UJS?
reset
我可以从JavaScript 函数重新启用按钮,但如果输入按钮是这样指定的:
value
然后按钮的原始标签 (完全重新加载页面。
我可以扔:
并使用刺激控制器实现我自己的双击预防,但这感觉不对。问题不在于属性data-disable-with
,而在于它是如何实现的。
javascript - 加载新的 Turbo Frame 时如何执行 JavaScript
我在我的 Rails 应用程序中使用 Turbo Frames,并且在每个页面上都有
这可以很好地加载,并且当单击链接时会按预期替换框架。在这个框架中我已经设置overflow-y: scroll
,在页面上创建一个可滚动的框架。每次在框架中加载新页面时,我都希望它滚动到底部。我怎样才能做到这一点?理想情况下使用原生 JavaScript。
ruby-on-rails - Hotwire turbo 流返回 head :no_content
我有一个带有帖子和评论的系统,每个Post
has_many
Comment
s。我正在尝试设置一个涡轮流,以便在您发表评论时立即显示。
一切正常,数据被持久化到数据库中,但似乎涡轮流没有正确返回。当我点击“评论”按钮时,没有任何变化,我收到一条:no_content
消息CommentsController#create
Turbo 似乎可以在数据库中创建评论,然后发回评论 POST 请求,我可以在浏览器网络选项卡中看到该请求。我想知道为什么有:no_content
以及为什么评论在页面刷新之前不显示。
Place.rb
Comment.rb
comment_controller.rb
在帖子中,我将评论呈现为部分内容:
然后comments/_show.html.erb
_comment.html.erb
new.html.erb
我想我可能已经找到了这个问题,但我不确定为什么会这样,日志中的最终想法是:
在我看来,这将是action=\"append\"
而不是替换,尤其是因为comment_36
页面上目前还不存在。
ruby-on-rails - 如何使用 Hotwire 和 Turbo.js 访问 current_user 助手?
我正在按照本教程实现用户可以提交琐事/有趣事实的功能。
我想将(编辑/删除)功能限制为每个项目的管理员或作者。</p>
我在 .application_controller 中创建了一个辅助类
但是当我在带有 Hotwire 的 Turbo-frame 中使用它时,我收到了这个错误
| ActionView::Template::Error(设计在您的请求环境中找不到Warden::Proxy
实例。
这是我的代码供参考
索引.html
_trivium.html.erb
如何访问部分评论中的 current_user 帮助程序以检查 current_user 是作者还是管理员(并且应该允许删除/编辑)?
ruby-on-rails - 如何在 turbo_frame 中重定向表单?
我需要添加一个按钮来保存以下表单的数据,但是当按下它时会重置视图并停留在其中,而不重定向到控制器的索引,我尝试了一个 ajax 调用,但我不知道为什么它对我不起作用。如何提供解决方案并添加按钮以保存并继续?
ios - 在 iOS 应用和 Rails 后端之间传递用户 ID 以进行应用内购买
我有一个支持 Turbo 的 Rails 应用和一个Turbo Native iOS 应用。
在 web 应用程序上,您可以通过 Stripe 购买订阅,因此我需要启用 iOS 应用程序用户在应用程序内购买的能力。
到目前为止,我已经进行了以下设置:
在原生应用中,当用户点击“购买”按钮时,将正确的支付请求发送到苹果的服务器,并弹出“购买”界面
来自 Apple 的服务器通知设置为,当订阅已购买、续订或使用收据数据取消时,我的 Rails 应用程序中的端点会被 ping 通。现在,我只是将 JSON 响应打印到我的日志中。
将我的网络应用程序中的唯一用户 ID 连接到 Apple 购买的最佳方式是什么?
目前发生的情况是我的 Sandbox iCloud 用户被标记为已订阅,但该信息未连接到应用程序的登录用户,因此他们无权访问付费层功能。
这是理想的工作流程:
用户在应用程序中点击“购买”并确认付款
当我从 Apple 收到成功的服务器通知时,我可以将该用户标记为已付费并为他们创建订阅对象,存储原始交易 ID 和其他相关订阅信息
购买完成后,用户将被重定向到应用程序内的另一个页面/视图
当 Apple 进一步发送服务器通知时,我可以将原始事务 ID 与我的 Rails 应用程序数据库中的订阅相匹配,并根据需要更新用户的访问/订阅。
主要是将付款与我的 Rails 应用后端中的用户联系起来。
有没有人成功建立这样的工作流程?
我很想得到一些关于如何处理它的指导。
非常感谢!
ruby-on-rails - 如何通过 Hotwire Turbo 流正确渲染图像?
我的问题:使用 Hotwire/Turbo 渲染图像时,所有 URL 都使用主机example.org
而不是我的实际主机名呈现。常规视图很好,但通过 Turbo 流呈现部分会导致 ActiveStorage URL,例如http://example.org/.../
.
上下文:我有一个简单的 Todo 应用程序,具有工作视图、部分和 turbo 流,它们一起显示 Todo 和关联用户列表。当我将用户加入 Todo 时,turbo 流会呈现正确的部分,并将用户的名称和头像放在我想要的 DOM 中。但是,来自 ActiveStorage 的图像 URL 包含example.org
主机名。
我在 中设置了标准 URL 选项config/environments/*.rb
,包括routes.default_url_options[:host]
和config.action_mailer.default_url_options[:host]
。我还了解了文件config/initializers/application_controller_renderer.rb
,您可以在其中设置http_host
参数;但是,我已经设置http_host
了https
布尔值,并且 Turbo 仍在image_tag
使用 example.org 渲染我。
此外,我发现有关如何以编程方式操作默认渲染器的建议有限(以解决问题)。该来源说要获取ApplicationController.renderer
并覆盖属性,如下所示:
但是这些broadcast_action_to
方法似乎不接受renderer
参数,所以这实际上对我在 Turbo 中没有帮助。
一定有我遗漏的配置,但我在 Turbo 或 Hotwire 文档中找不到它。
ruby-on-rails-5 - 如何使用 Turbo Streams 提交有关输入更改的表单?
我有一个表单,我想在任何输入字段更改时自动提交。我正在使用 Turbo Streams,如果我使用onchange: "this.form.submit()"
它,Turbo Streams 不会捕获它,并且 Rails 使用标准的 HTML 响应。单击提交按钮时它工作正常。我该如何解决这个问题?
ruby-on-rails - Rails + Hotwire:为什么我的链接在单击时会消失?
我正在尝试将 Hotwire/Turbo 合并到现有的 Rails 应用程序中。我已将涡轮帧添加到一个简单的编辑页面,但现在当我单击后退按钮时,它会消失,而不是带我到目标页面。链接很简单link_to "Back", my_model_show_path(model_instance)
。
我看到网络请求发生了,并且成功了。DevTools 的 Network 选项卡中的页面预览显示正在加载并呈现为 html 的正确页面。浏览器只是不会将我带到新位置。
我如何使这项工作像以前一样?我觉得即使我使用的是 Hotwire/Turbo,我也应该能够使用常规链接重定向应用程序中的任何位置。