Rails Cookies与Session操作汇总
2016-05-05 13:23
477 查看
与 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]
除外,极大地方便了开发
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]
相关文章推荐
- 红宝石(Ruby)史话
- Ruby on Rails中jquery_ujs组件拖慢速度的问题解决
- 浅谈Rails 4 中Strong Parameters机制
- Ruby on Rails中的ActiveResource使用详解
- 关于Ruby on Rails视图编写的一些建议
- Ruby on Rails中的ActiveRecord编程指南
- 对优化Ruby on Rails性能的一些办法的探究
- 简单对比分析Ruby on Rails 和 Laravel
- 在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用
- Ruby on Rails下的图像处理入门教程
- 详解Ruby on Rails中的Cucumber使用
- rails创建应用程序实例
- 浅谈Ruby on Rails的国际化
- Rails Routes中new、collection、member的区别浅析
- web 应用中常用的各种 cache详解
- Ruby on Rails迁移时的一些注意事项
- win7安装ruby on rails开发环境
- Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略
- rails "No route matches" 错误的解决方法
- Rails link_to 详解