Rails フォームに入力したデータが、データベースに保存されるまでの流れ
このようなフォームがあるとします。
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によってデータベースにデータが保存されます。