目次

AlSession セッションマネージャ

セッション変数とはHTTPリクエストをまたがって値を保持することができる変数で、セッションマネージャはその管理を行います。

コントローラローカルセッション変数は、個々のコントローラ内でのみ有効なセッション変数です。異なるコントローラからはアクセスできません。一つのアプリケーション内でグローバルにアクセスできるAlSessionによるセッション変数とは異なり、スコープがコントローラ内のみに限定されます。他のコントローラと名前がぶつかることを心配する必要がありません。

グローバルセッション変数

  AlSession[:sess_name] = "ABCDE"     # 保存
  s = AlSession[:sess_name]           # 参照
  AlSession.delete(:sess_name)        # 消去

コントローラAとコントローラBがあった場合、上記は同じ変数として扱われる。

コントローラローカルセッション変数

  session[:sess_name] = "ABCDE"     # 保存
  s = session[:sess_name]           # 参照
  session.delete(:sess_name)        # 消去
  session.delete_all()              # 全消去

コントローラAとコントローラBがあった場合、上記は違う変数として扱われる。

構成変更

セッションクッキーによって識別されるセッションごとに、セッション変数を保存するためのファイルが作られます。通常は/tmp以下にALSESSID_***というファイルになります。

全体設定ファイル al_config.rb で、以下の動作モード変更が可能です。

AL_SESS_DIR

セッションをファイルに保存する場合の場所
デフォルトは /tmp

AL_SESS_TIMEOUT

セッションタイムアウト(秒)
デフォルトは、28800秒(8時間)。 この時間を超えてアクセスがない場合は、タイムアウトとしてセッション変数が自動削除されます。