Quantcast
Channel: hachi8833の記事一覧|TechRacho by BPS株式会社
Viewing all articles
Browse latest Browse all 1832

Rails 6.1で form_withのデフォルトが「remoteなし」に戻った(翻訳)

$
0
0

概要

原著者の許諾を得て翻訳・公開いたします。

Rails 6.1で form_withのデフォルトが「remoteなし」に戻った(翻訳)

Railsのベテランなら、従来のあらゆるformヘルパーと同様、form_withヘルパーもHTMLレスポンスを返すことを期待するでしょう。しかし、form_withのデフォルトオプションはAjaxレスポンスを返すように変わっていました(訳注: これはRails 6.0と5.2が該当します: )。

この変更によってJavaScriptレスポンスがレンダリングされると、Railsの初心者が戸惑いがちでした。幸い、ごく最近のプルリク(#40708)によってこの変更が取り消され、デフォルトでHTMLレスポンスをレンダリングするようになりました。

改修前

改修前のform_withは、デフォルトでremoteフォームを生成しました。

<%= form_with url: tags_url do |f| %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end >

上のerbコードはフォームをAjaxリクエストとして送信します。この挙動はlocalオプションで変更可能です。local: trueを指定すると、フォームを従来のHTMLリクエストとして送信します。

改修後

改修後の新しいRails 6.1アプリケーションは、すべてデフォルトでremoteなしのフォームを生成するようになりました。Railsフォームのこのデフォルトオプションは、以下の設定で上書きすることもできます。

config.action_view.form_with_generates_remote_forms

このform_with_generates_remote_formsにはtrueまたはfalseを指定できます。

関連記事

Rails 5.1〜6.1: ‘form_with’ APIドキュメント(翻訳)


Viewing all articles
Browse latest Browse all 1832

Trending Articles