Rails Cookies与Session操作汇总

2015-08-09  本文已影响563人  GALAXY_ZMY

可以在controller与view中直接通过session与cookies访问,在model中无法访问。

Session

#存信息

session[:current_user_id] = user.id

#取信息

session[:current_user_id]

#删除信息

session[:current_user_id] = nil

#清空信息

reset_session

?

Cookies

cookies操作稍微有点多,因为关系到明文/加密,过期时长

1、默认为关闭浏览器,自动过期;明文存储。

#存信息

cookies[:id] = "rubyer.me"

#取信息

cookies[:id] #输出"rubyer.me"

#删除信息

cookies.delete(:key) #与session不同

#清空信息(不能直接删除,置过期即可)

<% cookies[:id] = {:expires => 2.weeks.ago.utc} %>

?

2、指定2周后过期

cookies[:user_preference] = {

:value => @current_user.preferences,

:expires => 2.weeks.from_now.utc

}

?

3、永久存储。实际为20年后过期,非永久

cookies.permanent[:user_preference] = @current_user.preferences

?

相当于

cookies[:user_preference] = {

:value => @current_user.preferences,

:expires => 20.years.from_now.utc

}

?4、加密存储,key即为config/initializers/secret_token.rb中的Application.config.secret_token

cookies.signed[:id] = "45"

#存储结果类似

cookies[:id] #返回“BAhJIgc0NQY6BkVU--a07249e5ce4374f62b7af628c70c679caa11c10b”

#读取值

cookies.signed[:id] #返回"45"

?

5、加密并永久存储

cookies.permanent.signed[:id] = "45"

cookies.signed[:id]

上一篇下一篇

猜你喜欢

热点阅读