【发布时间】:2012-04-23 15:26:03
【问题描述】:
我有一个在 pow 上运行的 Rails3 应用程序(正在开发中)和一个在 Thin 上运行的 Cramp 应用程序。我在 Rails 中使用基于 cookie 的会话,我希望 Cramp 能够访问 Rails 创建的会话。
知道如何做到这一点吗?我对 Ruby 和 Rails 还很陌生。
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby thin rack-pow
我有一个在 pow 上运行的 Rails3 应用程序(正在开发中)和一个在 Thin 上运行的 Cramp 应用程序。我在 Rails 中使用基于 cookie 的会话,我希望 Cramp 能够访问 Rails 创建的会话。
知道如何做到这一点吗?我对 Ruby 和 Rails 还很陌生。
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby thin rack-pow
好吧,我想出了如何让这个与 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 序列化为会话数据时出现问题。
我目前正在尝试寻找更好的解决方案。
【讨论】: