セッションとは
セッションを設定
class LoginsController < ApplicationController # ログインする def create if user = User.authenticate(params[:username], params[:password]) # ユーザーIDをセッションに保存する session[:user_id] = user.id redirect_to root_url end end end |
セッションを取得
class ApplicationController < ActionController::Base private # 現在のユーザーを取得する # @_current_userが空の場合は、session情報をキーにしてDBから検索する def current_user @_current_user ||= User.find_by(id: session[:user_id]) end end |
セッションを削除する
class LoginsController < ApplicationController # ログアウトする def destroy # @_current_userの値をnilにする @_current_user = nil reset_session redirect_to root_url end end |