如何解决在 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
块,表单就会开始喜欢它。
解决方法
想通了。看起来大多数表单助手(path
、form_with
等)都接受选项哈希 (documentation link) 中的 form_for
参数。您提供的值应与您希望在控制器中命中的 format
块相匹配。例如:
format.x
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。