LoginSignup
0
0

More than 3 years have passed since last update.

sessionとbefore_actionのまとめ

Posted at

session

sessionとは

主にログイン機能を実装するときに使う。ページを移動しても、ログイン状況を維持することができるもの。

なぜsessionが必要なのか?

sessionがないと、ページ移動すると情報を引き継ぐことができないから。

インターネットを支えているプロトコルであるHTTPは、ステートレス(状態を記憶しておらず、ただリクエストに対するレスポンスだけで処理する)なもの。
HTTPは、同じリクエストに対しては、常に同じレスポンスを返すというのが、基本的な動作。
今ではステートレスなサイトの方が珍しく、ユーザーに合わせた動きをするのが、一般的。

「アクセスした人が過去に行った操作履歴」を「状態」として保持し、それに合わせてレスポンスを返すステートフルな動きを実現するためのしくみの1つがセッション。


sessionの使い方

・セッションにデータを入力するとき
session[:キー名] = 値

・値を取り出すとき
値 = session[:キー名]

before_action

before_actionとは

該当するクラス内の全てのアクション直前に実行されるメソッド。
各コントローラの全アクションで共通する処理がある場合に使うと便利。
(例)ログイン認証のあるアプリケーション

before_actionの使い方

コントローラにbefore_actionとして処理したいメソッドを定義して、class定義の下に書く。

class SampleController < ApplicationController
  before_action :メソッド名
  ・・・
  def メソッド名
  ・・・
  end
end

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0