Rails フォームに入力したデータが、データベースに保存されるまでの流れ

このようなフォームがあるとします。

f:id:khirok:20200103160731p:plain

 

html(haml)はこちら

= form_tag("/create") do
%input{placeholder: "webサイトの名前",name: "site_name"}
%input{placeholder: "URL",name: "site_url"}
%input{placeholder: "ID",name: "site_id"}
%input{placeholder: "PW",name: "site_pw"}
<input type="submit" value="登録する">

 

フォームに値を入力して「登録する」ボタンを押すと、name属性で指定したデータが指定されたurlに送信されます。

 

今回は、ルーティングでこのように指定しているため、

post "/create" => "informations#create"

informationsコントローラーのcreateアクションが動きます。

 

送信されたデータは、params[:site_name]、params[:site_url]のように変換されています。

 

そのデータをコントローラーのcreateアクションで受け取ります。

def create
@item = Info.new(
site_name: params[:site_name],
site_url: params[:site_url],
site_id: params[:site_id],
site_pw: params[:site_pw])
@item.save
redirect_to("/")
end

 

newの引数でどのカラムがどのデータを受け取るかを指定しています。

 

そして、@item.saveによってデータベースにデータが保存されます。