Railsドキュメント

モデルなどからフォームタグを生成

適応バージョン

説明

URL、スコープ、モデルなどからフォームタグを生成

使い方

form_with(model: モデル=nil, scope: スコープ=nil, url: URL=nil, format: フォーマット=nil, オプション引数, ブロック引数)

オプション

オプション 説明 デフォルト値
:url URLを指定  
:method HTTPメソッドを指定 POST
:format フォーマットを指定 text/html
:scope スコープを指定  
:namespace 名前空間を指定  
:model モデルを指定  
:authenticity_token 認証トークンを指定  
:local リモート送信の無効 false
:skip_enforcing_utf8 送信時にutf8という名前の隠しフィールドを非表示 false
:builder フォームで使うモデルをオーバライド  
:id id属性を指定  
:class class属性を指定  
:data data属性を指定  
:html id、class、data以外のHTMLタグ  

URLからフォームを生成(form_tag的な使い方)

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>

モデルを指定してフォームを生成(form_for的な使い方)

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 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>

開始タグのみ生成

form_with(model: @post, url: super_posts_path)

form_forやform_tagとの違い

ソースコード