【问题标题】:Hotwire breaks link_to rails热线断开 link_to rails
【发布时间】:2021-07-24 01:57:04
【问题描述】:

我最近将 Hotwire 添加到我的 Rails 应用程序以更新模式,但这破坏了我将用户重定向到条带的 link_to。我在网上寻找解决方法,但由于 Hotwire 相对较新,我找不到它。有人对让 link_to 与 turbo 流一起使用有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails hotwire-rails


    【解决方案1】:

    有(至少)三种方法可以恢复默认(非 Turbo)链接行为。

    1:将 data-turbo 属性设置为 false。

    <%= link_to "Click Here", path_helper_method, data: { turbo: false } %>
    (or in plain html)
    <a href="" data-turbo="false">
    

    2:设置目标属性。

    <%= link_to "Click Here", path_helper_method, target: "_top" %>
    (or in plain html)
    <a href="" target="_top">
    

    3:将链接移到任何 Turbo 框架之外。 Turbo 框架内的任何链接,如果没有上述属性之一,将默认由 Turbo 处理(通常会出现意外结果)。

    【讨论】:

      【解决方案2】:

      如果链接在turbo_frame_tag 内部,并且turbo: trueturbo: true 设置为全局/在任何父元素上,则链接将充当turbo: true,这意味着它不会重定向您将尝试执行 ajax 请求。试试&lt;%= link_to 'Woodoo', root_path, data: { turbo: false } %&gt;

      【讨论】:

        【解决方案3】:

        将 link_to 转换为远程调用的帮助程序目前不适用于 Turbo。已远程的链接不会停留在帧内,也不会允许您使用 turbo 流操作进行响应。建议用带样式的 button_to 替换这些链接,这样您就可以通过常规表单进行操作,并且最好遵守 a11y。

        @编辑 在 turbo_frame_tag 上使用 target: "_top" 来启用其中的链接

        【讨论】:

        • 随意分享您对特定链接的看法的代码。
        【解决方案4】:

        我遇到了同样的问题,但是

        我改了

        &lt;%= link_to "Create A Comment", new_model_post_comment_path(@model_post.id),method: :get%&gt; &lt;/span&gt;

        对此,它对我有用

        &lt;%= link_to "Create A Comment", new_model_post_comment_path(@model_post.id)%&gt; &lt;/span&gt;

        【讨论】:

          猜你喜欢
          • 2021-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-02
          • 1970-01-01
          • 2010-10-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多