2017-07-10 5 views
1

URLのparamsを保管してください:私は次のparamsを引っ張ってる

<%= link_to "Sign up", new_store_registration_path(:plan_id => plan.id, :price => plan.price) %> 

登録後、私は

def after_sign_up_path_for(resource) 
    new_transaction_path(resource) 
end 

をnew_transaction_pathするためにリダイレクトするように設定している。しかし、新しいパスにリダイレクトするときのparamsはしないでください現れる。 new_transaction_pathのURLに2つのパラメータを表示するにはどうすればよいですか?

+0

あなたはにクエリ文字列にパラメータを追加しますpathは 'new_store_registration'ですが、' after_sign_up_path_for'メソッドでは保持されません。一つの方法は 'store_registration'コントローラで' new'アクションを実行するときにそれらをセッションに保存することです([guidelines](http://guides.rubyonrails.org/action_controller_overview.html#accessing-the-session)参照) 'after_sign_up_path_for'メソッドでそれらを取得します。 –

答えて

1

はテストしていませんが、私は多分これは動作します:あなたのコントローラで

def new 
    session[:registration_params] = request.query_parameters 
end 
あなたのリダイレクト方法で

def after_sign_up_path_for(resource) 
    new_transaction_path(resource, session[:registration_params]) 
end 
+0

それは動作します!ありがとうございます@ a.barbieri – Theopap

+0

多分あなたは何か他の人を助けることができます。サインアップの後、私は 'params [:email]'も保持し、 '<%= hidden_​​field_tag(:email、params [" email "])%>'を持つ別のページに渡したいと思います。どのように私はそれを行うことができます上の任意のアイデア??? – Theopap

+0

別の質問を開くことをお勧めします。とにかく、ユーザーがサインアップすると、データベースからメールを取得することができます(私の好みのオプションです)。そうでなければ 'params'ではなく' session'変数に保存することができます。 –

関連する問題