【问题标题】:Rails + Hotwire: Why does my link disappear when I click it?Rails + Hotwire:为什么我的链接在单击时会消失?
【发布时间】:2021-10-08 23:25:27
【问题描述】:
我正在尝试将 Hotwire/Turbo 合并到现有的 Rails 应用程序中。我已将涡轮帧添加到一个简单的编辑页面,但现在当我单击后退按钮时,它会消失,而不是带我到目标页面。链接是一个简单的link_to "Back", my_model_show_path(model_instance)。
我看到网络请求发生了,并且成功了。 DevTools 的 Network 选项卡中的页面预览显示正在加载并呈现为 html 的正确页面。浏览器只是没有将我带到新位置。
如何使这项工作像以前一样?我觉得即使我使用的是 Hotwire/Turbo,我也应该能够使用常规链接重定向应用程序中的任何位置。
【问题讨论】:
标签:
ruby-on-rails
hotwire-rails
turbo
turbo-frames
【解决方案1】:
原来有三种方法(至少)可以恢复默认链接行为。
1:设置data-turbo属性。
<%= link_to "Click Here", path_helper_method, data: { turbo: false } %>
(or in plain html)
<a href="" data-turbo="false">
2:设置target属性。
<%= link_to "Click Here", path_helper_method, target: "_top" %>
(or in plain html)
<a href="" target="_top">
- 将链接移到任何 Turbo 框架之外。 Turbo 框架内的任何链接,如果没有上述属性之一,将默认由 Turbo 处理。