本日、実務で初めて見たform_withについてまとめてみようと思います。
form_with
html.erb上で、フォームを生成したい時に使用する構文です。
form_withの記述で、
html.erb
form_with(model: nil, scope: nil, url: nil, format: nil, **options)
URL、スコープ、モデルの組み合わせを元にformタグが作成されます。
今回触れた実例では、
html.erb
<%= form_with model: [:admin, @user] do |f| %>
<div class="field">
<%= f.label :email %><br />
<%= f.email_field :email %>
form_with model:〜
と記述されており、後ろに続く :adminの記述によって、自動推測に使うオブジェクトを指定し、
inputフィールドにモデルの値を表示します。
また、参考記事をいくつか調べた所、一番基本的な記述は「form_for」もしくは「form_tag」と記載がありました。
今の自分では、文面を読んでも正しく理解できている気がしなかったので、
コードにもっと触れてその差分が分かり始めたころに再度、フォームの構築についてまとめたいと思います。
今日は、このあたりで失礼します。
参考サイト
[Rails 5.1] ‘form_with’ APIドキュメント完全翻訳
https://techracho.bpsinc.jp/hachi8833/2017_05_01/39502
Railsドキュメント -フォーム(form)
http://railsdoc.com/form
RailsGuide -Action View フォームヘルパー
https://railsguides.jp/form_helpers.html