2016-08-04 23 views
0

私はRails 5を使用してアプリケーションを作成しました。私のユーザー認証はDevise gemによって管理されています。Devitsの認証ルートと認証されていないルート

認証されたユーザーと認証されていないユーザーのルートパスが異なる必要があります。私はhereのヒントに従った。すべてが真っ直ぐ前進しているようですが、サインインした後、私の「Home」リンクをクリックすると、通常のroot_pathにリダイレクトされます。ここで

は私route.rbコードです:ここでは

authenticated :user do 
    root to: 'api/v1/private/reporting/dashboards/summaries#index', as: :authenticated_root 
end 
root to: 'landing#index', as: :root 

は私のナビゲーションバーにある「ホーム」リンクのためのコードは次のとおりです。

- if api_v1_public_members_user_signed_in? 
    = link_to 'Home', authenticated_root_path 
- else 
    = link_to 'Home', root_path 

は私が欠落している可能性があり、誰もスポット何かできますか?

** 'api_v1_public_members_user_signed_in?'メソッドはよく知られていないように見えるかもしれませんが、私は私のデベロッパーコントローラに名前を付けるので必要です。詳細は、hereを参照してください。

答えて

0

devise_scope下に認証され、認証されていないルート・パスの両方をラップし、それらを別の名前の両方与えてみてくださいにあなたのビューを変更し、その後

devise_scope :user do 
    authenticated :user do 
    root to: 'api/v1/private/reporting/dashboards/summaries#index', as: :authenticated_root 
    end 

    unauthenticated :user do 
    root to: 'landing#index', as: :unauthenticated_root 
    end 
end 

を:予想通り

- if api_v1_public_members_user_signed_in? 
    = link_to 'Home', authenticated_root_path 
- else 
    = link_to 'Home', unauthenticated_root_path 
+0

も動作するようには思えません。私はまだ 'unauthenticated_root_path' @ PaulFioravantiにリダイレクトされています – Herm

関連する問題