破いて捨てたノート

Webやテクノロジーやそれ以外に関する思いつき

Railsでsessionを空にしたり削除したり

# 空ハッシュにする
session[:hoge] = {}

# sessionが多重配列になっている場合、
session[:hoge][:fuga]
# => nil

# nilにする
session[:hoge] = nil

# sessionが多重ハッシュになっている場合、
session[:hoge][:fuga]
# => NoMethodError: undefined method `[]' for nil:NilClass

# `try`はこんな感じで書ける
session[:hoge].try(:[], :fuga)

# 削除する
session.delete(:hoge)

session[:hoge] = nilsession.delete(:hoge)はどう使い分けたらいいんだろう。わからん。

http://api.rubyonrails.org/classes/ActionController/Base.html#label-Sessions

Rails3レシピブック 190の技

Rails3レシピブック 190の技