2011-09-15 9 views

答えて

4

コントローラに:before_filterを追加し、そのためのアクションを作成する必要があります。

:before_filter :authenticate 

def authenticate 
    redirect_to(registration_path) unless current_user.nil? 
end 

また、:または:以外のフィルタオプションを使用することもできます。 または私は控えめな質問をしなかった?

+0

また、railstutorial.orgにお勧めします。初心者のための素敵なチュートリアル。 – avy

+0

これを動作させるには 'before_filter:authenticate'を使う必要がありました。先頭のコロンはありません。 – jcollum

+0

これは応答するので、これは 'before_action'に名前が変更され、正しい形式は' before_action:authenticate'と '@ current_user.nil?'です。これはおそらくインスタンス変数になるでしょう。 – watt

3

コントローラでこれを処理する必要があります。ルートは物事がどこに行くのかを決定し、次にあなたがそこに行くことが許されているかどうかを決定するのはコントローラに任されます。

ApplicationControllerに汎用のauthenticateメソッドを用意して、誰かがログインしているかどうかをチェックし、そうでない場合はログインページにリダイレクトする必要があります。次に、あなたの特定のコントローラで:

class SomethingController < ApplicationController 
    before_filter :authenticate 

    def handler 
    #... 
    end 
end 

あなたは:exceptオプションを使用して、特定の処理のための認証をスキップすることができます

before_filter :authenticate, :except => [ :this_one, :and_this_one ] 

他のオプションも同様にありますが、詳細についてはAction Controller Overviewのフィルタセクションを参照してください。

関連する問題

 関連する問題