如何在 turbo_frame 内重定向表单?

how to redirect a form within turbo_frame?

我需要添加一个按钮来保存以下表单的数据,但是当按下它时会重置视图并停留在其中,而不重定向到控制器的索引,我已经尝试了 ajax打电话,但我不知道为什么它对我不起作用。 怎么给个解决办法,添加保存继续按钮?

<%= turbo_frame_tag dom_id(taxonomy) do %>
  <%= form_with(model: [:admin, taxonomy], id: dom_id(taxonomy)) do |form| %>
<div class="box">
  <div class="field is-horizontal">
    <div class="field-body">
      <div class="field">
        <div class="control is-expanded is-relative">
          <%= form.text_field :name, placeholder: true, class: "input mt-5" %>
          <%= form.label :name, class: "label-hidden required" %>
        </div>
      </div>

      <div class="field is-narrow">
        <div class="control mt-5">
          <%= form.submit nil, class: "button is-primary" %>
          <%= link_to "#{ t '.cancel'}", admin_taxonomies_path, class: "button is-light" %>
        </div>
      </div>
    </div>
  </div>
</div>
<% end %>
<% end %>

您需要为框架添加一个 target="_top" 属性:turbo_frame_tag dom_id(taxonomy), target: :_top 否则 Turbo 会尝试替换包含表单的当前帧。

您也可以只在 link 上添加 data-turbo="false",重定向将正常工作。

文档中的更多信息 https://turbo.hotwired.dev/handbook/drive#disabling-turbo-drive-on-specific-links-or-forms