我想使用会话 cookie 存储在 Rails 2.3.14 应用程序和 Rails 3.0.10 应用程序之间共享会话。
我找到了一篇很好的博文,解释了如何设置它: http ://blog.kabisa.nl/2010/10/27/share-sessions-between-rails-2-and-rails-3-applications/
一切正常,直到出现问题,Rails2 将会话键存储为符号,Rails3 存储为字符串。还提供了一个补丁来解决这个问题:
# lib/patches/cgi/session.rb
require 'cgi/session'
class CGI #:nodoc:
class Session #:nodoc:
def [](key)
@data ||= @dbman.restore
@data[key.to_s]
end
def []=(key, val)
@write_lock ||= true
@data ||= @dbman.restore
@data[key.to_s] = val
end
end
end
该博客来自 2010 年,看起来这个补丁对 Rails2.3.14 应用程序的工作时间更长。我还读到 CGI 真的被弃用了,所以我想知道这个补丁是否仍然是解决问题的正确方法。
有什么建议可以确保 Rails2 和 Rails3 对会话密钥使用相同的数据类型吗?