Пропустить 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?

Ответы на вопрос(4)

Ваш ответ на вопрос