Retroceder   Foros del Web > Programación para sitios web > Ruby on Rails

Respuesta
 
Herramientas Desplegado
Antiguo 10-nov-2006, 09:06   #1 (permalink)
tomasulo no se puede cailificar en este momento
 
Fecha de Ingreso: agosto-2006
Mensajes: 299
obligar a que tres campos de formulario sumen 10.

quiero obligar a que tres campos numericos de un registro sumen 10.

me parece q el lugar correcto para poner el codigo seria en el modelo,

algo como validates_uniqueness_of o una definicion dentro del metodo.

IRIA DENTRO DEL METODO?

donde encuentro ejemplos de cosas asi, pues necesito muchas restriciones del tipo: si el padre es rubio y la madre es rubia el hijo no puede ser moreno.

y cosas asi.

ME GUSTARIA ENCONTRAR EJEMPLOS para asi poder diseñar mejor.
tomasulo está desconectado   Responder Citando
Antiguo 13-nov-2006, 00:23   #2 (permalink)
Epaminondas Pantulis no se puede cailificar en este momento
 
Fecha de Ingreso: enero-2006
Mensajes: 49
Puedes crear un método validate para esto, en tu modelo.rb:

Código:
def validate
   unless campo1+campo2 == 10 
      errors.add("campo1", "Deben sumar 10")
      errors.add("campo2", "Deben sumar 10")
   end
end
Cuando se actualice el registor, si el método 'validate' si errors no está vacío ActiveRecord no guardará el registor en la base de datos.
__________________
------------------------------
http://www.sobrerailes.com
Epaminondas Pantulis está desconectado   Responder Citando
Antiguo 13-nov-2006, 03:27   #3 (permalink)
tomasulo no se puede cailificar en este momento
 
Fecha de Ingreso: agosto-2006
Mensajes: 299
muchas gracias ya lo entiendo.

en este caso tendria q ir creando la bateria de tests no?

o es una tonteria para cositas tan triviales?
tomasulo está desconectado   Responder Citando
Antiguo 13-nov-2006, 06:12   #4 (permalink)
Epaminondas Pantulis no se puede cailificar en este momento
 
Fecha de Ingreso: enero-2006
Mensajes: 49
Mejor empezar escribiendo tests triviales, así tendrás experiencia cuando quieras escribir los complejos :)
__________________
------------------------------
http://www.sobrerailes.com
Epaminondas Pantulis está desconectado   Responder Citando
Antiguo 15-nov-2006, 08:51   #5 (permalink)
tomasulo no se puede cailificar en este momento
 
Fecha de Ingreso: agosto-2006
Mensajes: 299
q pereza me hace lo de los test, pero tendre q empezar.

dos preguntitas al tema de las definiciones en los metodos

por ejemplo en el metodo q me enseñas:

def validate
unless campo1+campo2 == 10
errors.add("campo1", "Deben sumar 10")
errors.add("campo2", "Deben sumar 10")
end
end

1.- en caso de error los campos resaltados son los dos, pero el mensaje aparece repetido,

mire la documentacion del errors.add para sacar un solo texto, pero no encontre nada

2.- Parte del mensaje aparece en ingles, que fichero tendria q edipar para q apareciese en castellano?
tomasulo está desconectado   Responder Citando
Antiguo 15-nov-2006, 23:24   #6 (permalink)
Epaminondas Pantulis no se puede cailificar en este momento
 
Fecha de Ingreso: enero-2006
Mensajes: 49
1.- sí, claro. Eso es opción mía. Si los dos campos deben sumar 10, entiendo que habría que marcar los dos como erróneos, y que el usuario lo corrija. El mensaje lógicamente lo puede uno poner a su gusto.

2.- Echale un vistazo a esto

http://www.sobrerailes.com/articles/...ku-on-rails-v6

Puede que a estas alturas este post de mi blog haya quedado un poco obsoleto, pero la idea básicamente es esa.
__________________
------------------------------
http://www.sobrerailes.com

Última edición por Epaminondas Pantulis; 15-nov-2006 a las 23:40.
Epaminondas Pantulis está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:40.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93