2011-12-28 5 views
0

ネストされたリソースを持つアプリがあります。私のルートは、次のとおりコントローラにレイルネストdeviseリダイレクト

layout "teamlayout" 

を添加することによって、異なるレイアウトを使用して私のブログコントローラ内

resources :teams do 
    resources :blogs 
end 

、IM。 どちらのレイアウトでも、application.html.erbとteamlayout.html.erbにはログインフォーム自体が含まれています。私はこれによって仕事をしました:https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

今私の質問。ユーザがログインするとき、私は彼が彼がログインするところからページにリダイレクトしたい

答えて

0

あなたはカップルのオプションがあります。

は、ログインのソースを記述するログインフォーム(の隠しフィールドの値を含めます例えばhidden_field_tag(:login_source, "team"))、SessionsController#createの独自のロジックを定義して、hidden_​​field値を使用してresponse_withの場所を決定します。あなたが次に

def store_location 
    session['saved_location'] = request.request_uri 
end 

ような何かを行うことによって、ログインフォームを持つコントローラにbefore_filterを使用することにより、ユーザの位置を追跡することができ

または、あなたはあなたのアプリケーションのコントローラにafter_sign_in_path_for(リソース)メソッドをオーバーライドすることができますセッションのsaved_location値を使用して、リダイレクト先を決定します。

第2のオプションは、私にとってDeviseインフラストラクチャにとってはあまり侵襲的ではないようですが、少し柔軟性がありません。

+0

thx!助けて頂きました :) – malice

関連する問題