不要把对象直接放在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) |