我正在开发一个向导 - 一个PORO模块 - 用于获取用户的信息。目标是将用户转发到所述向导,以便他在尝试使用不完整的个人资料进行预订(或类似操作)时完成其用户个人资料。
在向导的最后一步之后,我想将用户重定向回他最初想要的操作。为此,我正在保存一个名为“:user_return_to_from_wizard”的会话变量。
我似乎无法从PORO模块访问会话变量。我该怎么办?
我当然试过了
session[:user_return_to_from_wizard]
但这不起作用。我想像是
App::Application.session....
答案 0 :(得分:2)
你可能不能也应该 - 使用PORO的好处之一就是能够在特定的上下文之外使用它们(在你的情况下是HTTP和会话)。我要做的是从会话中收集您需要的信息并使用它来初始化您的向导:
class SomeController < ApplicationController
def index
return_url = session[:user_return_to_from_wizard]
wizard = Wizard.new(return_url: return_url)
...
end
end
这样你仍然可以独立测试/使用向导,而不必依赖于内部会话。