Help us understand the problem. What is going on with this article?

Railsのセッション管理方法

More than 1 year has passed since last update.

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" } }

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away