Rails 5.1 で form_with が登場

Rails 5.1 で form_withが登場し、それまで使われていたform_forform_tagは非推奨となった。

Rails 5.1〜7.0: ‘form_with’ APIドキュメント(翻訳)|TechRacho by BPS株式会社

form_with 登場当初はAjaxリクエストがデフォルトだった

form_with 登場当初、何もオプションを付けなかった場合、下記のように remote="true" となり、デフォルトはAjaxリクエストが送信される。

<!-- Rails 6.1まで -->
<form action="/posts" method="post" data-remote="true">

これをAJAXリクエストなしにしたい場合は下記のようなlocal: trueオプションが必要であった。

<%= form_with(model: @article, local: true) do |form| %>
  ...
<% end %>

Rails 6.1 から local: true がデフォルトになった

Rails 6.1 からはlocal: true(AJAXリクエストを送らない)がデフォルトになった。

Rails 6.1で form_withのデフォルトが「remoteなし」になった(翻訳)|TechRacho by BPS株式会社

これによりさっきのコードはlocal: trueオプションを外してもOKになった。

<%= form_with(model: @article) do |form| %>
  ...
<% end %>

参考文献