Ignorar before_filter no Rails

Nomes e objetos foram simplificados por uma questão de clareza. O conceito básico permanece o mesmo.

Eu tenho três controladores:dog, catehorse. Todos esses controladores herdam do controladoranimal. No controladoranimal, Eu tenho um filtro anterior que autentica um usuário como tal:

before_filter :authenticate

def authenticate
  authenticate_or_request_with_http_basic do |name, password|
    name == "foo" && password == "bar"
  end
end

Noshow ação dedog, Preciso ter acesso aberto a todos os usuários (pule a autenticação).

Se eu escrever a autenticação separadamente paradog, Eu poderia fazer algo assim:

before_filter :authenticate, :except => :show

Mas desdedog herda deanimal, Não tenho acesso às ações específicas do controlador. Adicionando:except => :show noanimal controlador não somente ignorará a autenticação para oshow ação dedog, mas também o decat ehorse. Esse comportamento não é desejado.

Como posso pular a autenticação apenas para oshow ação dedog enquanto ainda herda deanimal?

questionAnswers(4)

yourAnswerToTheQuestion