Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40424
  • 博文数量: 27
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-24 00:44
文章分类
文章存档

2011年(1)

2009年(26)

我的朋友
最近访客

分类: Java

2009-05-05 17:25:28

不要把对象直接放在session中,否则的话,可能会引起一些很难发现的问题。

例如你把user对象放在了session中,session[:user] = user

然后:
@user = session[:user]
@user.name = 'chad'

这样在你修改了user的name之后,数据库中的user并没有发生变化,但是session中的user已经发生了变化。


正确的处理方法是,把user.id 存放在session中,

session[:user_id] = User.find(:first).id

然后以后要用到这个user的时候,

@user = User.find(session[:user_id])

这样,你不会造成数据库中和session中的数据不一致了。


总结一下:
不要把对象模型数据放在session中,而是把一些简单的例如数组,字符串,整数等数据放在session中。

阅读(2857) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~