Rails Cookies与Session操作汇总

可以在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]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 可以在controller与view中直接通过session与cookies访问,在model中无法访问。 1.S...
    GALAXY_ZMY阅读 3,511评论 1 6
  • devise是一个很好的用户登录gem。但还是想自己写个“轮子”,一则本来就是在学习rails,二则是了解了用户登...
    kamionayuki阅读 11,411评论 2 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,288评论 19 139
  • body-parser是什么? body-parser是一个HTTP`请求体解析中间件`,使用这个模块可以解析JS...
    博为峰51Code教研组阅读 3,199评论 0 0
  • 情歌,总喜欢用失去了他来表示分了手。我写过,罪过罪过。 一个人是如何以为凭爱情或婚姻而有能力拥有另外一个人? 爱一...
    神经病患者N号阅读 4,039评论 0 5

友情链接更多精彩内容