rails基礎 form_withについて
こんにちは。
本日は、よく目にすることの多いrails のヘルパーメソッド、form_withについて記載いたします。
form_with
railsのヘルパーメソッドのひとつ。投稿ページや検索などのフォーム作成。htmlでいうところのformタグ。railsを使用する場合、formタグを使うより、form_withを使ったほうが便利である。パスの指定やrubyの埋め込みを簡単にできる!
<%= form_with url: "/posts", method: :post, local: true do |f| %>
引数は、そのフォームがどのような動作をするかを決めることができる。オプションと呼ばれる。
「url: "/posts"」
リクエストを送信するパスを指定。 prefixでも可能! ex.post_path
ここを下記のようにmodelを指定することも可能。
<%= form_with(model:@post, local: true) do |f| %>
モデル自体の記載も可能だが、コントローラーのnewアクションで定義したインスタンス変数を入れる事で、モデルを指定することができる。
「method」
送信するHTTPメソッドを指定。基本のmethodがpostのため、省略すること可能。
検索機能を導入する場合は、HTTPメソッドはgetになる。
「local: true」
local: trueがない場合、Ajaxによる送信(非同期通信)という意味になる。
htmlとしてフォームを送信する場合にlocal: trueが必要。
Ajaxを導入する際は注意!!
「|f|」
form_withで使うブロック変数。
このあとに続くフォーム部分の記載で使用する。
私が注意すべきは、Ajaxの際は、「local: true」を除くことでした。
また、フォーム部品のヘルパーメソッドはどこかでまとめようと思います。