当前位置:首页 > 开发 > 编程语言 > Ruby > 正文

Rails Cookies与Session操作汇总

发表于: 2012-03-30   作者:chen_miao   来源:转载   浏览次数:
摘要:  可以在controller与view中直接通过session与cookies访问,在model中无法访问。 Session #存信息 session[:current_user_id] = user.id #取信息 session[:current_user_id] #删除信息 session[:current_user_id] = nil #清空信息 reset_se

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

 from:http://rubyer.me/blog/823

Rails Cookies与Session操作汇总

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
网上有很多关于cookies和session的资料和讨论,但是基本上没有能形象的、系统的、完善的说清楚这两
session、cookies和application的区别 初学WEB对常见的几个东西做一个小区别总结 之上几者的主要区
众所周知,客户端使用Cookies来保存用户数据的,服务端用Session来保存用户数据~ Cookies的设计应该
Cookies的概念就不用哆嗦了,大家都很常用。不过我好像很少用,呵呵。 1.创建Cookies 程序代码 using
一、什么是cookies?   cookies是一种对客户端硬盘的数据进行存取的技术,这种技术能够让网站把少
1. RbConfig ruby的配置文件,安装后就存在, 在安装目录内,可以查看ruby详细的配置信息 路径示例:
Asp.Net里的Cookies 什么是cookies Cookies有很多种,网站上的cookie,浏览器的cookie,会话cookie
开发时遇到需要带参数的页面跳转。可以使用http中get方法直接跟参数的形式去完成这个小问题,但是看
设置session和cookies的代码(webform1.aspx) if (txtName.Text == "wlzcool") { Session["uid"] =
参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号