2011-06-29 2 views
0

私のRails3アプリはDeviseを認証に使用します。Rails3:Devitsログイン時に、データベースにあるドキュメントへの経路

ちょうど「ログイン」ボタンをクリックした後、私は、各ユーザーが(多くの場合、データベースに格納され、この文書のIDの変更を)与えられた文書にルーティングすることにしたいです。

はRails3でこれを処理するためのベストプラクティスはありますか?

  1. は、データベースをチェックし、それに応じて、適切な文書をレンダリングし、単一の巨大なページを作成します。

    は、私は2つのオプションを参照してください。 app/controllers/application_controller.rb

  2. 、右文書に応じてデータベースと経路を確認してください。

どちらが最適ですか?もっとスマートなアイデア?

答えて

0

あなたが好きなものにするためにログインコントローラ(またはアプリケーションコントローラ)にafter_sign_in_path_forフックをオーバーライドすることができます:

def after_sign_in_path_for(resource_or_scope) 
    if resource_or_scope.is_a?(User) 
    #Whatever url you need to here 
    else 
    super 
    end 
end 

、それはトリックを行う必要があります。

+0

私はちょうど私の 'のアプリ/コントローラ/ application_controller.rb'にこのコードを配置し、*どんなURL *とライン*「http://0.0.0.0:3000/monkeys/2/edit?locale=ja」を置き換えます*残念ながら、レールサーバーを再起動しても、ユーザーは* http://0.0.0.0:3000/* –

+0

に誘導されます。あなたのコードが実際にURL行に到達していることを確認できますか? – Olives

+0

この方法は決して実現しません! 'after_sign_in_path_for'メソッドの始めにデバッグ行を追加しました。これは決して印刷されません。私はあなたのメソッドを 'class ApplicationController'の中に追加しました、それは正しい場所ではありませんか? –

関連する問題