Foros del Web » Programando para Internet » Ruby »

Evitar que usuario postee un comentario en blanco

Estas en el tema de Evitar que usuario postee un comentario en blanco en el foro de Ruby en Foros del Web. Saludos foreros Raileros... aun estoy aprendiendo Rails, pero he descubierto una herramienta grandiosa... tengo una duda que espero alguien me ayude a resolver: tengo una ...
  #1 (permalink)  
Antiguo 16/06/2009, 12:58
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Evitar que usuario postee un comentario en blanco

Saludos foreros Raileros... aun estoy aprendiendo Rails, pero he descubierto una herramienta grandiosa... tengo una duda que espero alguien me ayude a resolver: tengo una vista en la que se despliegan contenidos individuales (como un blog), y los usuarios pueden enviar comentarios, pero necesito validar que no sean comentarios en blanco... alguien tiene alguna idea de como hacerlo???
  #2 (permalink)  
Antiguo 16/06/2009, 13:03
 
Fecha de Ingreso: abril-2009
Mensajes: 371
Antigüedad: 15 años, 7 meses
Puntos: 22
Respuesta: Evitar que usuario postee un comentario en blanco

si tus comentarios son modelos de activerecord puedes usar las validaciones incluidas en AR
http://api.rubyonrails.org/classes/A...ssMethods.html

en este caso validates_presence_of :campo_texto
  #3 (permalink)  
Antiguo 16/06/2009, 13:28
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Evitar que usuario postee un comentario en blanco

Gracias por tu pronta respuesta mpeg... ayer consideré esa posibilidad pero aun me quedó una duda: tengo un model para el contenido individual en sí, pero no tengo un model ni controller para el comentario como un 'objeto', por lo que no se si pudiera utilizar esa validación que sugieres en el model de mi individual content... qué opinas?
  #4 (permalink)  
Antiguo 16/06/2009, 14:12
 
Fecha de Ingreso: abril-2009
Mensajes: 371
Antigüedad: 15 años, 7 meses
Puntos: 22
Respuesta: Evitar que usuario postee un comentario en blanco

a ver pero los comentarios que envian los usuarios deberian tener su propio modelo e ir a la tabla de comentarios, no a la tabla del contenido que muestras (el blog o lo que sea)

eso ya no es que sea cosa de rails, esque es sentido comun a la hora de diseñar una base de datos
  #5 (permalink)  
Antiguo 16/06/2009, 15:05
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Evitar que usuario postee un comentario en blanco

Sí van a una tabla de comentarios... pero no tienen un model, sino un método en el controller de 'individual content'... raro, verdad? Es un proyecto en el que estoy colaborando, y esta tarea me tocó a mí, pero no hice el diseño...
  #6 (permalink)  
Antiguo 16/06/2009, 19:29
 
Fecha de Ingreso: abril-2009
Mensajes: 371
Antigüedad: 15 años, 7 meses
Puntos: 22
Respuesta: Evitar que usuario postee un comentario en blanco

ya pero la idea de rails es usar el ORM y que todas las tablas de tu base de datos se correspondan con un modelo de AR

si quieres hacerlo asi, imagino que la consulta sql en tu controlador esta hecha a mano, siempre puedes (en el controlador) hacer un:

unless params[:texto_comentario].blank?
# resto del codigo
end

que es equivalente a la validacion de validates_presence_of pero precisamente la gracia de rails y los sistemas MVC es separar la logica que afecta a los datos de la que afecta al flujo del programa en modelos y controladores
  #7 (permalink)  
Antiguo 17/06/2009, 08:54
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Evitar que usuario postee un comentario en blanco

Ya está resuelto; ojalá a alguien le sirva la explicación: resulta que mi equipo de desarrollo está utilizando un plugin 'act_as_commentable', así que el modelo sí existe, pero está en una ubicación diferente (en la carpeta del plugin)... así que muchas gracias por tu ayuda mpeg, podré resolverlo con 'validate_presence'... =)
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:30.