Rails Cookies与Session操作汇总_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > Rails Cookies与Session操作汇总

Rails Cookies与Session操作汇总

 2012/4/10 13:52:12  chen_miao  程序员俱乐部  我要评论(0)
  • 摘要:可以在controller与view中直接通过session与cookies访问,在model中无法访问。Session#存信息session[:current_user_id]=user.id#取信息session[:current_user_id]#删除信息session[:current_user_id]=nil#清空信息reset_sessionCookiescookies操作稍微有点多,因为关系到明文/加密,过期时长1、默认为关闭浏览器,自动过期;明文存储。#存信息cookies[
  • 标签:rails 操作 Cookie

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

发表评论
用户名: 匿名