2012-04-29 12 views
0

私はDevilsを使って自分のレールアプリでユーザーを認証しています。私は認証されたユーザーだけがアクセス可能なリソースをいくつか持っています。認証されていないユーザーがそのようなリソースにアクセスしようとすると、サインインページに戻るようにします。Rails、Devise:匿名ユーザーがページにアクセスしようとしたとき - ページをリダイレクトするためにユーザーをリダイレクトする

私はこれを行う最善の方法を考えていました。私が考えていた:

  • を私はapplication_controller.rbにチェックを追加することができます - しかし、私は、このチェックを追加した場合、それはまた、ページ内の看板に適用することができ、それゆえ我々はループに入ります。 (サインインページを入力 - >ログインしていないユーザー - >サインインページにリダイレクト...)

  • すべてのコントローラーメソッドの上に属性を追加します。 @authenticated。

答えて

1

authenticate_user!フィルタについてお読みですか?ドキュメントはgithubにあります(「コントローラのフィルタとヘルパー」を検索してください)。

関連するコントローラでこれを追加します。さらなるパラメータとして:only => [ :show ]または:except => [ :index ]を指定することで、特定のアクションに制限することができます。

+0

大丈夫 - それはほとんど仕事をしました。ただし、ユーザーは/ user/sign_inにリダイレクトされます。認証されていない場合、ユーザーのリダイレクト先をどのようにパーソナライズできますか? – Karan

+0

「ルートの設定」の章にいくつかの注意点があります。そうでない場合は、魔術師のwikiを見て、それは本当に良いと思います。 – Femaref

+0

私は以下を試しました:https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-when-the-user-can-not-be-authenticated しかし、私はまだ "初期化されていない定数CustomFailure"を取得します。私が間違っていることを見ることができない – Karan

関連する問題