0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?