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.

Railsの【session】を自分なりに噛み砕いた(3部作その2)

Last updated at Posted at 2021-03-16

flashを理解する過程で、paramssessionについても理解できたのでまとめ
長くなりそうだったので、1:params2:session3:flashの3回に分けた

####【3部作リンク】
1:params
2:session(ここ)
3:flash

####【ページ内リンク】
0.環境
1.前提知識
2.利用例
3.結論

#0.環境
・AWS
・Rails 5.2.4.5
・ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

#1.前提知識
sessionも値ではなくハッシュ!!!!!(←超重要)

ページ内リンクへ戻る

#2.利用例
###順序①:ログイン部分

sessions_controller.rb
class SessionsController < ApplicationController
  def create
    user = User.find_by(なんでも)
    session[:user_id] = user.id
  end

ユーザーを指定し、sessionに代入する。user.id = 1とすると、session = { user_id: 1 }が保存される。

###順序②:ログアウト部分

sessions_controller.rb
class SessionsController < ApplicationController
  def destroy
    session.delete(:user_id)
  end
end

sessionのキーがuser_idの物を削除している。ログイン部分が[:user_id]でログアウト部分が(:user_id)なのは、sessionがハッシュだからなのか・・・
session.delete[:user_id]にするとエラーとなる

ページ内リンクへ戻る

#3.結論
sessionの特徴】
sessionは削除しない限り、ページ遷移しても値を保持し続けるのが特徴

sessionではなくハッシュ!!!!!(←再度)

性質は違うけど、paramsさえ理解できればササっと行けた

ページ内リンクへ戻る

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?