Пропустить before_filter в Rails
Имена и объекты были упрощены для ясности. Основная концепция остается прежней.
У меня есть три контроллера:dog
, cat
, а такжеhorse
, Все эти контроллеры наследуются от контроллераanimal
, В контроллереanimal
У меня есть фильтр перед, который аутентифицирует пользователя как такового:
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic do |name, password|
name == "foo" && password == "bar"
end
end
вshow
действиеdog
Мне нужно иметь открытый доступ ко всем пользователям (пропустить аутентификацию).
Если бы я должен был написать аутентификацию отдельно дляdog
Я мог бы сделать что-то вроде этого:
before_filter :authenticate, :except => :show
Но с тех порdog
наследует отanimal
У меня нет доступа к действиям контроллера. Добавление:except => :show
вanimal
контроллер будет не только пропускать аутентификацию дляshow
действиеdog
но такжеcat
а такжеhorse
, Такое поведение не желательно.
Как я могу пропустить аутентификацию только дляshow
действиеdog
в то время как все еще наследует отanimal
?