installero
installero

Reputation: 9786

Rails 7: local (non-XHR) request with a form_with form

In Rails 7 a form generated with form_with tag sends remote request by default (turbo.js handles form submit event instead, whatever).

Previously one would pass remote: false or local: true parameters to form helper, to get just a regular HTML form behavior.

But not anymore, this doesn't work:

<%= form_with scope: :session, url: session_path, local: true do |form| %>
  <p><%= form.label :email %></p>
  <p><%= form.text_field :email %></p>

  <p class="mt"><%= form.label :password %></p>
  <p><%= form.password_field :password %></p>

  <p class="mt"><%= form.submit "Enter" %></p>
<% end %>

What option should I pass to form_with helper in order to get a non-XHR request from my form?

Upvotes: 10

Views: 4321

Answers (1)

installero
installero

Reputation: 9786

You actualy need to pass a data: {turbo: false} to make form send a regular request:

<%= form_with scope: :session, url: session_path, data: {turbo: false} do |form| %>
  <p><%= form.label :email %></p>
  <p><%= form.text_field :email %></p>

  <p class="mt"><%= form.label :password %></p>
  <p><%= form.password_field :password %></p>

  <p class="mt"><%= form.submit "Enter" %></p>
<% end %>

Upvotes: 11

Related Questions