30代での転職。ウェディング業界からプログラミングの世界へ

33歳。行きあたりばったりだった者。ウェディング業界からプログラミングの世界へ飛び込み、起業を目指す者のブログ

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」を除くことでした。
また、フォーム部品のヘルパーメソッドはどこかでまとめようと思います。