Überspringe before_filter in Rails
Namen und Objekte wurden der Übersichtlichkeit halber vereinfacht. Das Grundkonzept bleibt gleich.
Ich habe drei Controller:dog
, cat
, undhorse
. Diese Controller erben alle von dem Controlleranimal
. In der Steuerunganimal
Ich habe einen Vorfilter, der einen Benutzer als solchen authentifiziert:
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic do |name, password|
name == "foo" && password == "bar"
end
end
In demshow
Wirkung vondog
Ich muss für alle Benutzer einen offenen Zugang haben (Authentifizierung überspringen).
Wenn ich die Authentifizierung separat für schreiben würdedog
Ich könnte so etwas machen:
before_filter :authenticate, :except => :show
Aber seitdog
erbt vonanimal
Ich habe keinen Zugriff auf die steuerungsspezifischen Aktionen. Hinzufügen:except => :show
in demanimal
Der Controller überspringt nicht nur die Authentifizierung für dieshow
Wirkung vondog
, aber auch das voncat
undhorse
. Dieses Verhalten ist nicht erwünscht.
Wie kann ich die Authentifizierung nur für das überspringen?show
Wirkung vondog
während noch erben vonanimal
?