1

我有一个在 pow 上运行的 Rails3 应用程序(在开发中)和一个在 Thin 上运行的 Cramp 应用程序。我在 Rails 中使用基于 cookie 的会话,我希望 Cramp 能够访问 Rails 创建的会话。

知道如何做到这一点吗?我对 Ruby 和 Rails 还很陌生。

谢谢。

4

1 回答 1

0

好吧,我想出了如何让它与 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 出现问题。

我目前正在尝试寻找更好的解决方案。

于 2012-12-21T00:31:46.307 回答