Validar fecha en el controlador

Hola, mi problema es como validar fecha1 y fecha2 para saber que tengan
el formato correcto desde el controlador, ya que pertenesen a unos
campos de texto en un formulario el cual no tiene asociado un modelo

como detecto si el usuario escribio el formato correcto 20/02/2009 o
20022009 ?

estube googleando pero encontre muy poco y no me ayudo mucho o no me
quedo muy claro.

def search

fecha1 = params[:fecha][:inicio].to_date
fecha2 = params[:fecha][:fin].to_date

@protocolos = Protocolo.find_by_sql [“select * from protocolos where
fecha_entrada between ? and ? ORDER BY protocolos.fecha_entrada ASC”,
fecha1, fecha2]

end

como detecto si el usuario escribio el formato correcto 20/02/2009 o
20022009 ?

– Por que dejas que el usuario formatee la fecha a mano?

http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html

Si no te he entendido mal, creo que un “select_date” solventaría tu
problema.

Salu2,

Iván

Real_men_dont_need_spacebars

De todas maneras tampoco te puedes fiar de como te llegan las cosas
desde la
vista, cualquiera con el firebug te podría enviar los parametros mal.
Igual
deberias usar un parser para transformar el string de la fecha a un
objeto
Date para luego enviarlo al modelo.

No se si se podrian poner validates en el modelo suponiendo que la fecha
es
un string y, por ejemplo, validar la fecha con una expresion regular. Me
parece que no porque para rails ese campo es un Date, pero no sabría
decirte
que ocurre al asignarle un string, si pasa el string a los validadores o
se
parsea antes. Sería cuestion de probar.

Saludos

2009/3/10 Oscar D. [email protected]:

Hola, mi problema es como validar fecha1 y fecha2 para saber que tengan
el formato correcto desde el controlador, ya que pertenesen a unos
campos de texto en un formulario el cual no tiene asociado un modelo

como detecto si el usuario escribio el formato correcto 20/02/2009 o
20022009 ?

estube googleando pero encontre muy poco y no me ayudo mucho o no me
quedo muy claro.

¿No te sirve Date.parse?

Diego Fernández Fernández

http://simplelogica.net