ruby-on-rails - Rails 2.3 session

标签 ruby-on-rails session activerecord

我正在开发一个Rails 2.3.2应用程序。
我需要保留session_id作为订单记录,将其检索,最后在订单完成后删除session_id。
当我将cookie用作 session 存储时,它起作用了,但对active_record存储却不起作用。
(我重新启动了浏览器,所以没有缓存问题。)

我知道Rails 2.3实现了惰性 session 加载。
我阅读了一些相关信息,但仍然感到困惑。

有人可以澄清在这种情况下如何使用session_id吗?

我正在做的是...

用户下订单要经历几页。
没有注册,也没有登录。
因此,我将session_id保留在订单记录中,以便其他用户无法访问该订单。
@order = Order.last:conditions => {:id => params [:id],:session_id => session [:session_id]}
当命令完成时,我将nil设置为session_id列。

您将如何在惰性 session (和active_record存储)环境中实现这种情况?

谢谢。

山姆

最佳答案

我在编写购物车时遇到了同样的问题。实际上有两个问题。
从rails 2.3开始, session 被延迟加载,session [:session_id]不再起作用。您必须先访问该 session ,然后才能使用它。

puts request.session_options[:id]
session[:session_id] # this forces load of the session in Rails 2.3.x
puts request.session_options[:id]

输出:
nil
78eb1e371f3378ed98874f9ce372d652

更新:session.session_id已被弃用,因此请使用request.session_options [:id]。

更新2 :此问题将在3.x(而非2.3.5)https://rails.lighthouseapp.com/projects/8994/tickets/2268-rails-23-session_optionsid-problem中修复

格雷格

关于ruby-on-rails - Rails 2.3 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1035933/

相关文章:

ruby-on-rails - 如何向 Ruby 类添加简单的 DSL?

http - Google Analytics - 异常会停止 session 吗?

php - 当服务器发送的事件运行时,带有 session_start() 的页面不会加载

php - 销毁所有 session

ruby-on-rails - CSV 解析占用太多内存

ruby-on-rails-3 - ActiveRecord::Relation 的未定义方法

ruby-on-rails - 如何在前台阻止 dockerized nginx 泛滥日志?

ruby-on-rails - 后台作业花费的时间是 Rails 内相同操作的两倍

ruby-on-rails - ruby mechanize 网站抓取总是只返回 javascript 数据

ruby-on-rails - rails 4 和活跃的管理员