クッキー・キャッシュ

セッションについて(session)

セッション(session)とは

ページ間で変数の内容を維持するための仕組み

特徴

  • セッション情報は、Railsのデフォルトの設定ではクッキーに保存
  • 4KB以上のデータは保存できない

キャッシュの設定

説明

Railsで標準で使用するキャッシュは3種類

種類

キャッシュ説明
ページキャッシュページ単位のキャッシュ
アクションキャッシュアクション単位のキャッシュ
フラグメントキャッシュビューによる部分単位のキャッシュ

環境ごとのデフォルトの設定

環境設定
development無効
test有効
production有効

設定の有効化

config.action_controller.perform_caching = true

クッキーを保存(cookies)

説明

クッキーとは、クライアント側に保存されるファイルのこと

使い方

cookies[:クッキー名] = { :key => クッキー情報 }

オプション

オプション説明デフォルト
:valueクッキーの値
:pathクッキーが有効なパス
:domainクッキーが有効なドメイン現在のホスト
:expiresクッキーの有効期限/
:secure暗号化通信でのみクッキーを送信false
:httponlyHTTPクッキーを有効false

クッキーに保存
cookies[:user_name] = "david"
クッキーに配列を保存
cookies[:lat_lon] = [47.68, -122.37]
クッキーにハッシュを保存
cookies[:login] = { :value => "XJ-122", :expires => 1.hour.from_now }

ソースコード検索

クッキーを削除(cookies.delete)

説明

クッキーを削除

使い方

cookies.delete(:クッキー名 [, 対象のドメイン、またはパス])

クッキーを削除
cookies.delete :user_name
ソースコード検索

フラグメントキャッシュ(cache)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

ページ全体ではなく、ページの一部をキャッシュするときに使う

使い方

<% cache([キャッシュキー]) do %>
  キャッシュ
<% end %>

オプション

オプション説明
:skip_digest

<% cache [ project, current_user ] do %>
  <b>All the topics on this project</b>
  <%= render project.topics %>
<% end %>

ソースコード

ソースコード検索

永続化クッキー(cookies.permanent)

説明

永続化クッキー(有効期間が20年に設定されたクッキー)を設定する。

使い方

cookies.permanent[クッキー名] = 値

署名付きクッキー(cookies.signed)

説明

署名付きクッキーを設定する。

使い方

cookies.signed[クッキー名] = 値

セッションに保存

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

セッションに情報を保存する

使い方

session[キー] = 値

基本形(オプションなし)
session[:user_name] = 'test'
@userがnilかfalseだったら、@userにUser.find(session[:user_id])を代入
@user ||= User.find(session[:user_id])

ソースコード検索

セッション情報を削除(reset_session)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

セッション情報を削除する

使い方

すべて
reset_session
一部
session[キー] = nil

すべてのセッション情報を削除
reset_session
user_nameのセッション情報を削除
session[:user_name] = nil

ソースコード検索

現在のセッション情報を取得(session.session_id)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

使い方

session.session_id

ソースコード検索

ページキャッシュの破棄(expire_page)

説明

ページキャッシュを破棄する

使い方

expire_page キャッシュキー

アクションキャッシュの破棄(expire_action)

説明

アクションキャッシュを破棄する

使い方

expire_action キャッシュキー

フラグメントキャッシュを破棄(expire_fragment)

説明

フラグメントキャッシュを破棄する

使い方

expire_fragment キャッシュキー