4.4 セッション

セッションを取得する

セッションはビューおよびコントローラで使用することができます。セッションはsessionメソッドを利用することで取得できます。 以下の例ではセッションに:current_user_idというキーで保存しているユーザーIDを元に現在ログインしているユーザーを探すメソッドになります。

class ApplicationController < ActionController::Base
  def current_user
    User.find_by(id: session[:current_user_id])
  end
end

セッションにデータを保存する

セッションにデータを格納するにはsessionメソッドにシンボルのキーを指定し値を代入します。 以下の例ではログインが成功したら、セッションにログインしたユーザーIDを保存しています。

class SessionsController < ApplicationController
  def create
    @user = User.find_by(email: params[:email])
    if @user.password == params[:password]
      session[:current_user_id] = @user.id
      redirect_to mypage_path
    else
      redirect_to root_path
    end
  end
end

セッションからデータを削除する

セッションからデータを削除するにはsessionメソッドで指定のキーにnilを代入します。 以下の例ではsession:current_user_idnilを代入することでログアウトを実現しています。

class SessionsController < ApplicationController
  def destroy
    session[:current_user_id] = nil
    redirect_to root_path
  end
end

results matching ""

    No results matching ""