Foros del Web » Programando para Internet » Ruby »

[SOLUCIONADO] Error al validar si un email ya existe find_by

Estas en el tema de Error al validar si un email ya existe find_by en el foro de Ruby en Foros del Web. Hola amigos, estoy haciendo un formulario de registro y necesito verificar si el email ya fue registrado, de manera que user find_by para saber si ...
  #1 (permalink)  
Antiguo 28/11/2013, 18:58
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 18 años, 1 mes
Puntos: 22
Pregunta Error al validar si un email ya existe find_by

Hola amigos, estoy haciendo un formulario de registro y necesito verificar si el email ya fue registrado, de manera que user find_by para saber si existe o no el email, pero me esta dando error.

Si hago esto

Código:
User.find(:all, :conditions => {:user => 'kalvinmanson'}).count
me funciona perfecto, me devuelve la cantidad de registros que coinsiden con user = 'kalvinmanson'

entonces ahora asumo que solo deberia ser cambiar 'kalvinmanson' por el valor que viene del formulario y hago esto:

Código:
User.find(:all, :conditions => {:email => param[:email]}).count
pero no hace nada

y es pero cuando intento validar el campo de user

Código:
User.find(:all, :conditions => {:user => param[:user]}).count
Me genera este error

Código:
Mysql2::Error: Unknown column 'user.user' in 'where clause': SELECT `users`.* FROM `users` WHERE `user`.`user` = 'kalvinmanson' AND `user`.`password` = '********' AND `user`.`email` = '[email protected]' AND `user`.`firstname` = 'Kalvin' AND `user`.`lastname` = 'Manson' AND `user`.`birthdate` = '1986-11-05' AND `user`.`iddocument` = '1032406842' AND `user`.`document_type` = 'CC' AND `user`.`city` = 'Bogotá Distrito Capital' AND `user`.`content` = '' AND `user`.`college` = 'Indefinido'
dice que no encuentra la columna user.user pero es que la tabla se llama users en plural, no se que hacer, ayuda jejejej
  #2 (permalink)  
Antiguo 28/11/2013, 19:37
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 18 años, 1 mes
Puntos: 22
Respuesta: Error al validar si un email ya existe find_by

Me respondo a mi mismo, mi solución fue:

Código ruby:
Ver original
  1. if User.find(:all, :conditions => {:user => post_params[:user]}).count > 0
  2.       redirect_to action: :home
  3.     else
  4. private
  5.     def post_params
  6.       params.require(:user).permit(:user, :password, :email, :college, :firstname, :lastname, :birthdate, :iddocument, :document_type, :city)
  7.     end
  #3 (permalink)  
Antiguo 28/11/2013, 19:52
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Error al validar si un email ya existe find_by

te sugiero que uses las validaciones de activerecord http://edgeguides.rubyonrails.org/ac...lidations.html

un saludo!
__________________
>> abimaelmartell.com
  #4 (permalink)  
Antiguo 28/11/2013, 22:06
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 18 años, 1 mes
Puntos: 22
Respuesta: Error al validar si un email ya existe find_by

Amigo muuuuuuchisimas gracias, esto esta genial me ahorrara mucho tiempo y hara mi aplicacion mas amigable jejeje me estoy enamorando de rails. xD

Etiquetas: rails
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 05:33.