как реализовать кнопку "сохранить и продолжить" в форме 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 %>
2 ответа
Решение
Вам необходимо добавить к фрейму атрибут target="_top":
turbo_frame_tag dom_id(taxonomy), target: :_top
В противном случае Turbo пытается заменить текущий фрейм, содержащий форму.
Вы также можете просто добавить
data-turbo="false"
по вашей ссылке и перенаправление будет работать нормально.
Подробнее здесь, в документации https://turbo.hotwired.dev/handbook/drive#disabling-turbo-drive-on-specific-links-or-forms .