[Rails 5.1] ‘form_with’ APIドキュメント完全翻訳

こんにちは、hachi8833です。先週リリースされたRails 5.1の目玉機能のひとつである#form_withのAPIドキュメントを翻訳いたしました。 なお、5.1より前のform_forやform_tagはその後非推奨になりました。5.1以降はこのform_withだけを使いましょう。 参考: Provide form_with as a new alternative to form_for/form_tag · Issue #25197 · rails/rails 概要 Rails 5.1英語ドキュメント: ActionView::Helpers::FormHelper#form_with 原文の更新や訳文の誤りにお気づきの方は、ぜひ@hachi8833までお知らせください。 参考 [Rails 4][Rails 5] ‘form_for’ APIドキュメント完全翻訳 [Rails 3] ‘form_for’ APIドキュメント完全翻訳 Rails 5.1 #form_with APIドキュメント(翻訳) ソースコード: actionview/lib/action_view/helpers/form_helper.rb#L715 # API呼び出し form_with(model: nil, scope: nil, url: nil, format: nil, **options) URL、スコープ、モデルの組み合わせを元にformタグを作成します。 URLのみを指定する <%= form_with url: posts_path do |form| %> <%= form.text_field :title %> <% end %> # => <form action=”/posts” method=”post” data-remote=”true”> <input type=”text” name=”title”> </form> inputフィールド名にスコープのプレフィックスを追加する <%= form_with scope: :post, url: posts_path do |form| %> <%= form.text_field :title %> <% end %> # => <form action=”/posts” method=”post” data-remote=”true”> <input type=”text” name=”post[title]”> </form> 渡されたモデルからURLとスコープを自動推測する <%= form_with model: Post.new do |form| %> <%= form.text_field :title %> <% end %> # => <form action=”/posts” method=”post” data-remote=”true”> <input type=”text” name=”post[title]”> </form> 既存のモデルを更新するフォームで、モデルの値をフィールドに表示する <%= form_with model: Post.first do |form| %> <%= form.text_field :title %> <% end %> # => <form action=”/posts/1″ method=”post” data-remote=”true”> <input type=”hidden” name=”_method” value=”patch”> <input type=”text” name=”post[title]” value=”<postのtitle>”> </form> フォームのフィールドは、必ずしもモデルの属性と対応してなくてもよい <%= form_with model: Cat.new do |form| %> <%= form.text_field :cats_dont_have_gills %> <%= form.text_field :but_in_forms_they_can %> <% end %> # => <form action=”/cats” … Continue reading [Rails 5.1] ‘form_with’ APIドキュメント完全翻訳