2010-12-14 6 views
1

私は何かばかなことをしているに違いありません。なぜこれが機能しないのかについてのアイデア。before_filter:exceptは動作していないようです。

class ApplicationController < ActionController::Base 

before_filter :auth, :except => [:aboutus] 

認証方法はこれだけです。それが正常に動作しますが、

+0

「aboutus」はコントローラかアクションですか? – Zabba

+0

申し訳ありませんが、aboutusは別のコントローラで、アプリケーションコントローラのアクションではないことがより明確になっているはずです。ロードマスターは私が混ざったものを見つけました。 – Nick

答えて

3

この構成はApplicationControllerにの「弊社について」アクションに適用される

#Simple HTTP Auth during development 
    def auth 
    authenticate_or_request_with_http_basic do |username, password| 
     username == "REDACTED" && password == "REDACTED" 
    end 
    end 

おかげで弊社についてなど、すべてのコントローラに適用されます。実際に "aboutus"メソッド/アクションを持っているコントローラにbefore_filter定義を入れてみましたか?

あなたはApplicationControllerにでこれを置くことができます。

before_filter :auth 

、その後、弊社についての方法含むコントローラで:

skip_before_filter :auth, :only => :aboutus 

あなたは、コードを繰り返さないとすべてが素敵に見えるこの方法を。

+0

魅力的な作品です。コントローラーが上流フィルターを強制的にスキップできることを忘れていました。何が間違っていたのかを指摘し、修正を提供するコンボを本当に感謝します。ありがとう – Nick