我正try 通过表单执行POST请求,但我不想执行turbo_stream请求;我想执行一个HTML请求.

我try 将data-turbo-stream="False"放在表单标记中,但它一直在执行turbo流请求.

<%= form_with(model: book, data: {turbo_stream: false}) do |form| %>

这是生成的HTML语言:

<form data-turbo-stream="false" action="/books" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="t1PouR2NA4bSleg8OBSRQhvAP1DTSmCkchiTf4aqUIWuPJjG9pJk3J58Z25o9-S2ZXhqFwaUSTfWFn0LvQZF3Q" autocomplete="off">

Ruby version:卢比3.2.2(2023-03-30修订版e51014f9c0)[x64-mingw-ucrt]

Rails version:轨7.0.8

谢谢!!

这是我的Create方法.它始终以TRUBO_STREAM格式响应:

# POST /books or /books.json
  def create
    @book = Book.new(book_params)

    respond_to do |format|

      if @book.save
        format.html { redirect_to book_url(@book), notice: "Book was successfully created." }
        format.turbo_stream
        format.json { render :show, status: :created, location: @book }
      else
        format.html { render :new, status: :unprocessable_entity }
        format.json { render json: @book.errors, status: :unprocessable_entity }
      end
    end
  end

推荐答案

你想在表单中添加data-turbo="false"来禁用turbo,并使表单成为常规的HTML表单:

<%= form_with(model: book, data: {turbo: false}) do |form| %>

data-turbo-stream允许Turbo Streams与GET个请求一起使用.

data-turbo="false"将在链接和表单上禁用Turbo Drive...

100


Update

如果您的操作同时具有这两种格式,则turbo_stream优先,但有多种方法可以覆盖此设置,例如,在params中设置format:

<%= form_with model: book do |form| %>
  <%= hidden_field_tag :format, :html %>

  <%= form.submit %>
<% end %>

有关更多详细信息,请访问:

100

Ruby-on-rails相关问答推荐

Rails 7.1.3如何在生产环境中查看堆栈跟踪

Gemfile需要较新版本的依赖项

方法和括号之间没有空格时出错

如何不需要rails/all?

Rails 7.0.4 和 link_to 的数据确认不起作用

为 has_attached_file 等活动记录属性创建类方法

Heroku 应用程序上的远程 mysql 数据库

Rails 中的转义值(类似于 mysql_real_escape_string())

为 ActionMailer 渲染不同的视图(模板)

在 JS 模块中使用 Rails-UJS(带有 webpacker 的 Rails 6)

可以在 Rails/ActiveRecord 中使用 NULL 指定唯一索引吗?

Rails:如何在表单的必填字段上禁用星号?

设计记住我和会话

rails 4 before_validation on: :create 或 on: :save

在rails中带有内部文本或html的link_to image_tag

如何使用 Rails 3 获取请求的目标控制器和操作?

Mongoid OR 查询语法

Rails - 邮件,将正文作为纯文本获取

如何在不触及 updated_at 属性的情况下更新单个属性?

设置EDITOR或BUNDLER_EDITOR环境变量