2011-09-11 5 views
19

Soy relativamente nuevo en los rieles. . Tengo Diseñar configurado, y desea ejecutar un código de devolución de llamada cuando los usuarios inician sesión en¿Dónde deberían guardarse las devoluciones de llamadas en una aplicación de rieles?

Mirando el Warden wiki page, puedo usar la devolución de llamada "after_set_user" para llevar a cabo esta lógica, por ejemplo:

Warden::Manager.after_set_user do |user, auth, opts| 
    unless user.active? 
    auth.logout 
    throw(:warden, :message => "User not active") 
    end 
end 

Sin embargo, no estoy seguro de dónde debería almacenar estas cosas. Mi primer pensamiento es que podría ponerlo en config/initializers/devise.rb. ¿Es eso correcto? No se siente bien poner lo que es esencialmente código de controlador en el directorio de configuración.

+0

Parece un filtro, "after_set_user", es decir, yo creo que es un controlador. – Bnjmn

+0

En realidad, encontré una sección en initializers/devise.rb llamada "Warden configuration", así que supongo que _es_ el lugar correcto para ponerla. –

+0

¿Encontraste dónde poner este código? ¿O lo adaptaste al estilo del código del inicializador Devise de alguna manera? – dgilperez

Respuesta

Cuestiones relacionadas