2011-01-13 27 views
5

Estoy tratando de crear una acción que va a comprobar para cada página si el usuario se registra en Por eso, en el controlador Home creé este método:.before_filter con otro controlador

def check_session 
    if !session[:user_id] 
    redirect_to :action=> 'login' 
    end 
end 

Y' he puesto el código en la cabecera del controlador:

before_filter :check_session, :except => [:sub_layout, :authenticate, :login] 

Ahora quiero usar check_session desde fuera de las páginas de Home, digamos en las páginas de Users. ¿Cuál es la sintaxis correcta para llamar a un método de un controlador diferente en el before_filter?

Respuesta

7

Si mueve todo lo que ya tiene al controlador de aplicación, buscará todos los controladores en su aplicación. A continuación, utilice :skip_before_filter method para omitir la comprobación de los controladores/acciones que desee.

+0

OK, y ¿cómo puedo definir el método: except? – hizki

+0

Hizki, respuesta editada para ayudarte. – JackCA

+0

¡Gracias! otra cosa ... Digamos que tendré múltiples 'antes_filtros', ¿hay alguna manera de especificar cuáles omitir? Editar: busqué en el enlace el método. Se explica allí ... ¡Gracias otra vez! – hizki

Cuestiones relacionadas