Foros del Web » Programando para Internet » Ruby »

[SOLUCIONADO] Problema con persisted

Estas en el tema de Problema con persisted en el foro de Ruby en Foros del Web. Hola que tal, bueno este msj es porque se me esta presentando un problema al usar pesisted. En mi controlador obtengo la informacion de facebook ...
  #1 (permalink)  
Antiguo 29/08/2014, 09:42
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Problema con persisted

Hola que tal, bueno este msj es porque se me esta presentando un problema al usar pesisted.

En mi controlador obtengo la informacion de facebook de un usuario, luego si el usuario ya existe lo redirecciono a la authenticacion; de lo contrario le muestro los errores.

Pero al hacer dicha validacion ( if @usuario.persisted? ), me sale el siguiente mensaje de error:

" undefined method `persisted?' for nil:NilClass "

Tengo esto en mi controlloer:

Código Ruby:
Ver original
  1. auth = request.env["omniauth.auth"]
  2.  data = {
  3.    :nombre => auth.info.first_name,
  4.    :apellido => auth.info.last_name,
  5.    :username => auth.info.nickname,
  6.    :email => auth.info.email,
  7.    :provider => auth.provider,
  8.    :uid => auth.uid
  9.   }
  10.  
  11.   @usuario = Usuario.find_or_create_by_omniauth(data)
  12.  
  13.   if @usuario.persisted?
  14.     sign_in_and_redirect @usuario, :event => :authentication
  15.   else
  16.     session[:Omniauth_errors] =  @usuario.errors.full_messages.to_sentence           unless @usuario.save
  17.     session[:Omniauth_data] = data
  18.     redirect_to new_usuario_registration_url
  19.   end

Pero no me queda claro, por que sale dicho error. Uso omniauth para obtener la informacion, si alguien me pudiera explicar mejor cual es el problema se lo agradeceria.

Seguire investigando
__________________
Your Code as a Crime Scene...
  #2 (permalink)  
Antiguo 06/09/2014, 07:20
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Problema con persisted

Pues según el error @usuario no está definido. Probablemente no encuentre el usuario cuando haces find_or_create_by_omniauth. Omniauth usa :provider y :uid para buscar el usuario, fíjate si eso está llegando bien.
__________________
(:
  #3 (permalink)  
Antiguo 17/10/2014, 09:11
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Problema con persisted

Hola que tal, bueno el problema era que @usuario, no se estaba regresando de la función, lo retorne y con eso quedo listo.

Gracias PZIN
__________________
Your Code as a Crime Scene...

Etiquetas: controlador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:23.