2017-08-22 4 views
0

私は、ユーザーの情報のためにウィザード(POROモジュール)で作業しています。目標は、不完全なプロファイルで予約(または類似のアクション)を試みた場合に、ユーザプロファイルを完成させるためにユーザを前記ウィザードに転送することである。POROからレールアプリのセッションにアクセスするにはどうしたらいいですか?

ウィザードの最後のステップの後、ユーザーを最初に意図した動作にリダイレクトしたいと思います。そのためには、 ":user_return_to_from_wizard"という名前のセッション変数を保存しています。

POROモジュールからセッション変数にアクセスできないようです。私に何ができる?

私はもちろん

session[:user_return_to_from_wizard] 

を試してみましたが、それは動作しません。ポロを使用しての素晴らしいことの一つは、(あなたのケースではHTTPとセッション)特定の文脈の外でそれらを使用できるようにすることです - 私は

App::Application.session.... 
+4

コントローラからのセッション値( 'session'がすぐに利用できる)をモジュール/ウィザードに渡すのはなぜですか? – Stefan

+0

Stefanのコメントをさらに説明するために...ハッシュのような 'session'は変更可能ですので、POROメソッドに引数として渡してそこで操作すると、後で' session'にアクセスすると変更が残ります –

答えて

2

ような何かあなたはおそらくできないとshould'ntを推測します。私は何だろうと、セッションから必要な情報を収集して、ウィザードを初期化するためにそれを使用している:

class SomeController < ApplicationController 
    def index 
    return_url = session[:user_return_to_from_wizard] 
    wizard = Wizard.new(return_url: return_url) 
    ... 
    end 
end 

あなたはまだテスト/独立ウィザードを使用することができますし、内部セッションに頼る必要はありませんこの方法です。

関連する問題