LoginSignup
0
0

More than 3 years have passed since last update.

params flash sessionの寿命を考えたことがあるか。

Last updated at Posted at 2021-01-18

sessionとかflashってどれくらいの間データを保持しているんだろう?

railsでウェブサイトを作っている時、定義した変数等は画面を遷移した時に、すぐに消えてしまいます。
@user等のインスタンス変数は一度の画面遷移で死んでしまう経験をしたことが多いと思います。
sessionやflashは長生きすると聞いていたので、寿命を見てみたい!という好奇心から記事を書きました。

実験開始

今回は自分のPFに無理やり作ったので少し見にくくなっています。

①コントローラにsession flash paramsの出場選手を定義

とっつきにくいイメージかもしれませんが、案外カジュアルに定義できちゃいます。

コントローラ
  def top
    session[:life]="私はsession。生きています"
    flash[:life]="私はflash。生きています。"
    params[:life]="私はparams。生きています。"
  end

②ビューページに選手達を表示する記述を追加

ビュー
            <%= session[:life]%><br>
            <%= flash[:life]%><br>
            <%= params[:life]%><br>

            <%= yield %>

③画面遷移を何度かして、どれくらい生きられるかを見る

0遷移目

皆表示されていることを確認。
スクリーンショット 2021-01-18 13.11.11.png

1遷移目

早くもparamsが息を引き取ります。
スクリーンショット 2021-01-18 13.11.25.png

2遷移目

ここでflashも力尽きました。
スクリーンショット 2021-01-18 13.11.34.png

結言

名前 寿命
params 1遷移キル
flash 2遷移キル
session キルするまで生きている

sessionにユーザーのログイン状態が保存されていれば、
ずっとログイン状態を保っていることにも納得できます。
ログアウトはsessionに保存しているユーザーのログイン状態をdestroyしていたんですね。

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