Saltar before_filter en rieles
Los nombres y los objetos se han simplificado para mayor claridad. El concepto básico sigue siendo el mismo.
Tengo tres controladores:dog
, cat
yhorse
. Todos estos controladores heredan del controladoranimal
. En el controladoranimal
, Tengo un filtro anterior que autentica a un usuario como tal:
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic do |name, password|
name == "foo" && password == "bar"
end
end
En elshow
acción dedog
, Necesito tener acceso abierto a todos los usuarios (omitir la autenticación).
Si tuviera que escribir la autenticación por separado paradog
, Podría hacer algo como esto:
before_filter :authenticate, :except => :show
Pero desdedog
hereda deanimal
, No tengo acceso a las acciones específicas del controlador. Agregando:except => :show
en elanimal
el controlador no solo omitirá la autenticación parashow
acción dedog
, pero también el decat
yhorse
. Este comportamiento no es deseado.
¿Cómo puedo omitir la autenticación solo parashow
acción dedog
mientras sigue heredando deanimal
?