Rails Cookies与Session操作汇总

与 Java 和c#不同,Rails 操作 session 和 cookies 非常简单,可以在 controller 与 view 中直接访问,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

 

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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值