[Rails] Re: Date validation
Tom Mornini
tmornini at infomania.com
Wed Feb 1 04:56:51 GMT 2006
On Jan 31, 2006, at 2:20 AM, rails nut wrote:
> Tom Mornini wrote:
>> I just use the standard library's date validation
>> within the model's validate method.
>>
>> --
>> -- Tom Mornini
>
> I can't see anything for date validation in the rails book or the ruby
> book. Can you tell me what you mean by 'standard library date
> validation' please ?
Sorry for the long delay on this.
The talk of Rails returning dates that don't match the
input rather surprised me. I've been working on tests
and backend work almost exclusively, so I wanted to
investigate this for myself completely before discussing
it further.
OK, I have a form that allows date input, and on submit
I get this in the logs:
Parameters: {"buyer"=>{"born_on(1i)"=>"1988","born_on
(2i)"=>"2","born_on(3i)"=>"31"}, "commit"=>"Create"}
I can access the buyer.born_on field, as you've been discussing, but
I can also access:
params[:buyer]['born_on(1i)'] -> 1988
params[:buyer]['born_on(2i)'] -> 2
params[:buyer]['born_on(3i)'] -> 31
Which can be tested with this application.rb method:
def test_date(object,attribute)
Date.valid_civil?(params[object][attribute + '(1i)'].to_i,
params[object][attribute + '(2i)'].to_i,
params[object][attribute + '(3i)'].to_i)
end
by writing:
def valid
test_date(:buyer,'born_on')
end
--
-- Tom Mornini
More information about the Rails
mailing list