微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Hotwire/Rails 应用程序中,如何强制表单助手只接受 text/html?

如何解决在 Hotwire/Rails 应用程序中,如何强制表单助手只接受 text/html?

我已将 Hotwire 合并到我最新的 Rails 6 应用程序中。 Hotwire/Turbo 部分运行良好,但我有一个简单的用户表单,我不想使用 Hotwire/Turbo。目前,所有表单提交都在我的控制器中点击 format.turbo_stream {},但我希望这个特定的表单点击 format.html {} 块。我注意到表单提交请求的 Accept 标头现在自动包含 text/vnd.turbo_stream.html,但我不知道如何删除它。

表单没有包含在 turbo_frame_tag 中;页面上的任何地方都没有 Turbo,看起来很标准:

    <%= form_with model: @user do |f| %>
      <%= f.file_field :avatar,class: "file-input",id: "avatar-input" %>
      <%= f.text_field :name,class: "input wide",placeholder: "Your name here" %>

      <%= f.submit "Next",class: "button-next-submit" %>
    <% end %>

如何在每个表单的基础上强制执行此更改?我以前认为添加 turbo 标签是您更改行为/Accept 标头的方式,但现在我看到,一旦您在控制器方法添加 format.turbo_stream 块,表单就会开始喜欢它。

解决方法

想通了。看起来大多数表单助手(pathform_with 等)都接受选项哈希 (documentation link) 中的 form_for 参数。您提供的值应与您希望在控制器中命中的 format 块相匹配。例如:

format.x

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?