tutorial rails español ruby-on-rails devise warden

ruby on rails - rails - ¿Dónde deben colocarse las devoluciones de llamada del alcaide en una aplicación de rieles?



rails use devise (1)

Los ganchos de Warden deben ser requeridos cuando su aplicación se está iniciando, por lo que el inicializador de Devise en config / initializers / devise.rb es un buen candidato.

Sin embargo, el comportamiento que desea lograr se logrará mejor mediante el uso de esta función Devise:

https://github.com/plataformatec/devise/wiki/How-To:-Customize-user-account-status-validation-when-logging-in

Soy relativamente nuevo en los rieles. He configurado Devise y deseo ejecutar un código de devolución de llamada después de que los usuarios inicien sesión.

Mirando la página wiki de Warden , puedo usar la devolución de llamada "after_set_user" para realizar 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 el código del controlador en el directorio de configuración.