2011-07-01 15 views
7

Estoy utilizando el dispositivo en la aplicación Rails 3.Atributos de la actualización después de Iniciar sesión Diseñar

me gustaría actualizar algunos atributos de un usuario en una señal de éxito en

lo estoy haciendo la siguiente manera:.

que añade el texto siguiente código para application_controller.rb

def after_sign_in_path_for(user) 
    @user = current_user 
    @user.status = "online" 
    @user.save 

    root_path 
end 

¿Es posible tener un método diferente para hacer esto y no usar el método que se usa para definir el after_sign_in_path?

¡Gracias de antemano!

+3

Salida esta respuesta [http://stackoverflow.com/questions/4850057/devise-call-backs](http://stackoverflow.com/questions/4850057/devise-call-backs) – eugen

+0

Gracias eugen! ¡Es exactamente lo que estaba buscando! –

+1

Eugen, ¿puede "responder" esta pregunta apuntando a la URL? De esta manera, esta pregunta no aparecerá en las preguntas sin respuesta. –

Respuesta

3

Usted puede hacer esto con ganchos a Warden.

##config/initializers/devise.rb 

Warden::Manager.after_authentication do |user,auth,opts| 
    user.update_attribute(:currently_signed_in, true) 
end 

Warden::Manager.before_logout do |user,auth,opts| 
    user.update_attribute(:currently_signed_in, false) 
end 
Cuestiones relacionadas