Sessionとは
簡単に言うと
ページ間で変数の内容を維持するための仕組み
Sessionの特徴
- セッション情報は、Railsのデフォルトの設定ではクッキーに保存
- 4KB以上のデータは保存できない
参考:http://railsdoc.com/references/session
Sessionを用いたフォーム登録
本来であれば、
<%= form_for(@user) do |f| %>
としてform_forの引数にモデルのインスタンスを渡して上げることで自動的にパスの設定は行ってくれるが、今回の場合はsessionモデルという名のモデルを用意していないので明示する。
例えばログインの場合は、以下のように書くことが出来る。
new.html.erb
<%= form_for(:session, url: login_path) do |f| %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.submit "Log in" %>
<% end %>
そして、このように書くと、paramsに入る内容は
params[:session][:email]
params[:session][:password]
のように入れ子構造になる。
例えば、
email_fieldに test@test.com
、password_fieldに hogehoge
と入力すると、
パラメーターは以下のように。
{ session: { email: "test@test.com", password: "hogehoge" } }