我有一个在pow(开发中)上运行的Rails3应用程序和一个在瘦上运行的Cramp应用程序。我在Rails中使用基于cookie的会话,我希望Cramp能够访问由Rails创建的会话。
知道如何做到这一点?我是Ruby和Rails的新手。
感谢。
答案 0 :(得分: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的抽筋)和以下模型。
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序列化的类都可以实例化。这就是我遇到问题的地方。当通过rails将其序列化为会话数据时,这会导致ActionDispatch出现问题。
我目前正在尝试寻找更好的解决方案。