新手问题 rails 使用生成的 destroy 方法时,为什么同时还会将 session 中的数据销毁了?

zjnxzy · 2013年02月02日 · 最后由 zjnxzy 回复于 2013年02月06日 · 2630 次阅读

今天在使用 rails 开发时,使用 rake 生产的增删改查方法,发现使用 destroy 方法(删除一条数据)时,会将保存在 session 中的用户信息也一起销毁了,不知道是什么原因。。。。

你是 ajax 提交的?

#1 楼 @ywencn 不是哦,只是平常的提交,提交完以后,session 保存的用户信息就自动删除了....感觉很奇怪。。。。

看一下你 controler 中的 filter,是否有一些不当的操作

很可能是提交没带 crlf,rails 会自动删除 session

那条记录删除成功?

你用 flash 保存的?

#4 楼 @lyfi2003 对,这个可能性大,好好看看日志

csrf。 flash,mobile 提交都会遇到这样的问题。 form 提交不会有这样的问题

#4 楼 @lyfi2003 csrf 是什么东东呀?不了解哦!我测试发现只要使用了自己定义的布局后,再使用 destroy 方法则会自动的删除 session。然而自己写一个 delete 方法,使用 get 提交,则不会发生这种情况。

#5 楼 @cantin 记录删除成功了。。。

#6 楼 @hooopo 不是哦,session 的保存方式设置的是 cookie_store

= csrf_meta_tags

在你自定义的 layout 中加入这个,csrf 可以去看 rails guides 的安全那一章

#12 楼 @cantin 哦哦,谢谢!我试试。。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号