Torihaji's Growth Diary

Little by little, no hurry.

Rails7 少しばかりのsessionメソッド

はじめに

どうも、torihaziです。

今日は棚卸し回です。

色々ネットを調べながら課題を実装しました。

そのため理解しきれているか怪しかったので1週間前の自分に説明するつもりで

1記事ずつ書いていこうと思います。

HC生の方への直接的な答えにはならないようにします。

セッション

セッションは ブラウザとサーバ間で行われる通信の単位ことです。

クライアントからサーバへ接続するとセッションが始まり、

サーバから切断するとセッションが終わります。

セッションはログインなどに使用されます。

管理する方法としてはセッションを識別するためのセッションIDを生成し、

それをCookieに保存するというやり方があります。

このようにすることでブラウザはクライアントの状態を維持することができます。

状態というのはこの場合、ログインしている状態のことです。

そもそもブラウザとサーバがやり取りする際に使用している通信プロトコルは HTTPです。

HTTPはステートレス、つまりステート(状態)がレス(ない)です。

そのためセッションを使わなければ、接続ごとに以前の情報を忘れて

状態など維持することができません。

Railsにおけるセッション

Railssessionというメソッドを使用してセッションにアクセスすることができます。

セッションはハッシュとして扱うことができます。

セッションの値を取得

session[:key]

セッションに値を格納

session[:key] = value

セッションの値を削除

session.delete(:key)

セッション全体をリセット

reset_session

おまけ

ちなみにセッションが開始されるのはブラウザを開いてアクセスした時です。

逆に終了するのはブラウザを閉じた時です。

そのため例えばその接続されている間だけ何かセッションで管理したいものがあるなら

if !session[:key]
   何かsession管理したいもの
   session[:key] = value
end

みたいにすればセッション管理をすることができます。

終わりに

まだまだ続きます。次です。