我有一个在 pow 上运行的 Rails3 应用程序(在开发中)和一个在 Thin 上运行的 Cramp 应用程序。我在 Rails 中使用基于 cookie 的会话,我希望 Cramp 能够访问 Rails 创建的会话。
知道如何做到这一点吗?我对 Ruby 和 Rails 还很陌生。
谢谢。
我有一个在 pow 上运行的 Rails3 应用程序(在开发中)和一个在 Thin 上运行的 Cramp 应用程序。我在 Rails 中使用基于 cookie 的会话,我希望 Cramp 能够访问 Rails 创建的会话。
知道如何做到这一点吗?我对 Ruby 和 Rails 还很陌生。
谢谢。
好吧,我想出了如何让它与 SSE 一起工作,但我目前正在调试一个有趣的问题,也许你可以帮助我。
所以我创建了以下 ApplicationAction
class ApplicationAction < Cramp::Action
before_start :load_session
def load_session
session_id = request.cookies['_session_id']
@session = Session.where(:session_id => session_id).first
yield
end
end
这使得 rails 会话可用于我的所有子操作。然后我添加了一个会话模型(我在 ActiveRecord 中使用 cramp)和以下模型。
class Session < ActiveRecord::Base
set_table_name :sessions
# Get the data on the sessions table
def data; Marshal.load(Base64.decode64(read_attribute(:data))); end
end
假设所有 Marshal 序列化的类都可以实例化,这实际上工作得很好。这就是我遇到的问题。当 ActionDispatch 被 rails 序列化到会话数据中时,这会导致 ActionDispatch 出现问题。
我目前正在尝试寻找更好的解决方案。