【Rails】form_withについて

はじめに

 form_withがどのようなHTMLに変換されてコントローラーに渡されているのか気になったので調べてみました。

form_withはどのようなHTMLに変換されているのか?

まず、元のform_withのソースです。
Image from Gyazo

こちらが先ほどのform_withがHTMLに変換されたものです。 Image from Gyazo

元のソースでは送り先をurl: articls_path(名前付きルート)と指定しているだけですが、変換後ではaction="/articles"で場所を指定しmethodはpostメソッドが指定されています。この設定で、コントローラではcreateアクションが実行されます。また、lavelタグやinputタグの属性も自動で値が入っています。inputタグのname属性と入力者が入れた値がマッチしてデータが送られます。こうすることによって、コントローラーではparams[:title]やparams[:text]で値がとれるようになるんですね。