特定のモデルに特化したフォームを生成
適応バージョン
- 1.1.6
- 1.2.0
- 1.2.6
- 2.0.0
- 2.0.1
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.2
- 2.3.8
- 3.0.0
- 3.0.5
- 3.0.7
- 3.0.9
- 3.1.0
- 3.2.3
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.2.1
- 7.0.0
説明
特定のモデルに特化したフォームを生成
form_withの利用を推奨(Rails5.1以降はform_forとform_tagはform_withに統合されたため)
使い方
form_for(モデルオブジェクト, オプション={}, ブロック引数)
オプション
オプション | 説明 | デフォルト値 |
---|---|---|
:as | ハッシュのキー名前 | |
:url | フォームの送信先 | |
:namespace | 名前空間の設定 | |
:method | メソッド(get, post, patch, put, deleteなど) | |
:authenticity_token | 認証トークン | |
:remote | JavaScriptを使うか | false |
:enforce_utf8 | utf8用の非表示用を出力するか? | true |
:html | タグの属性 | |
:format | フォーマット |
例
特定のモデルに特化したフォームを生成
form_for(@user) do |f|
end
#=> <form action="/users" class="new_user" id="new_user" method="post"></form>
urlオプション
form_for @user, url: {action: 'update'} do |f|
end
#=> <form action="/users/update" class="new_user" id="new_user" method="post"></form>
HTML属性を指定
form_for(@user, html: {multipart: true}) do |f|
end
#=> <form action="/users" class="new_user" enctype="multipart/form-data" id="new_user" method="post"></form>
ハッシュのキー名を変更
form_for(@person, as: :client) do |f|
end
# params[:client]で取得できるようになる
フォーマット指定
form_for(@post, format: :json) do |f|
end
JavaScriptを使用
form_for(@post, remote: true) do |f|
end
#=> <form action='http://www.example.com' method='post' data-remote='true'><input name='_method' type='hidden' value='patch' /></form>
HTML属性を指定
form_for(@post, data: { behavior: "autosave" }, html: { name: "go" }) do |f|
end
#=> <form action='http://www.example.com' method='post' data-behavior='autosave' name='go'><input name='_method' type='hidden' value='patch' /></form>
外部リソースへのForm
form_for @invoice, url: external_url, authenticity_token: 'external_token' do |f|
end
認証トークンを使わない外部リソースへのForm
form_for @invoice, url: external_url, authenticity_token: false do |f|
end