MyDocs

# form_withの使い方

form_with

新しいバージョンの rails なら form_for, form_tag は使用せずに form_with を使う事ができる。

モデルの有無で書き方が変わる。

モデルが有るとき

form_with model: 'モデル名' do |form|
  # 中身
end

モデルが無いとき

form_with model: 'URL' do |form|
  # 中身
end
form_with model: 'PATH' do |form|
  # 中身
end

オプション

よく使うもの。

オプション説明デフォルト値
:urlURL を指定-
:methodHTTP メソッドPOST
:localリモート送信を無効false

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

= form_with url :posts_path do |f|
  = f.text_field :title

生成される HTML。

<form action="/pots" method="post" data-remote="true">
  <input type="text" name="title">
</form>

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

= form_with model: Post.new do |f|
  = f.text_field :title

生成される HTML。

<form action="/pots" method="post" data-remote="true">
  <input type="text" name="post[title]">
</form>