- prepare将User模型的一个对象存入session,然后跳转到show
- show将session中的对象显示出来
- update将session中的user对象的name属性改为"Foo"(并不存回数据库),然后跳转到show
013 把模型对象存入session的危险性
原创
©著作权归作者所有:来自51CTO博客作者fsjoy1983的原创作品,请联系作者获取转载授权,否则将追究法律责任
Be careful when storing a model in a session. It will behave differently than you expect and can easily get out of sync with the database. Instead of storing the model directly in the session, store the id to the model and use that to fetch it from the database.
在session中存储模型的时候要小心了,这样可能会发生许多与你意愿想违背的情况,并且会与数据库中的数据脱节。不要直接将model放到session中,最好存储它的id值,并且用这个id值来获取数据库中存储的对象。
3个action
如果执行update的话,在session里会一直保存这个name="Foo",除非将session清除。
另外,如果在保存user出错时,这个错误信息也会一直存储在session中。
那么正确的做法是:
将模型对象的id存入session中,在每次显示的时候是从session中取出id值,然后到数据库中查找数据。这样就避免了将对象直接存入session中的种种问题。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章