To complement my post...
This is the log when the dates pass the validation:
======
Processing RecordsController#update (for 127.0.0.1 at 2007-10-02
15:37:27) [POST]
Session ID: 1199d4ef3d66c49f40253c314a4c5a9c
Parameters: {"commit"=>"Edit",
"action"=>"update", "id"=>"10",
"controller"=>"records",
"comment"=>[""],
"record"=>{"next_action_date(3i)"=>"31",
"last_action_date(1i)"=>"2012",
"last_action_date(2i)"=>"6",
"last_action_date(3i)"=>"7",
"service_id"=>"2", "mode_id"=>"1",
"nextaction_id"=>"1",
"nextaction2_id"=>"1",
"next_action_date(1i)"=>"2013",
"station_id"=>"1",
"next_action_date(2i)"=>"3"}}
[4;36;1mRecord Columns (0.000000) [0m [0;1mSHOW FIELDS FROM
records [0m
[4;35;1mRecord Load (0.000000) [0m [0mSELECT * FROM records
WHERE (records.`id` = 10) [0m
[4;36;1mSQL (0.000000) [0m [0;1mBEGIN [0m
[4;35;1mRecord Update (0.000000) [0m [0mUPDATE records SET
`created_at` = ''2007-10-01 12:27:55'', `station_id` = 1,
`last_action_date` = ''2012-06-07'', `nextaction_id` = 1,
`nextaction2_id` = 1, `service_id` = 2, `mode_id` = 1, `updated_at`
''2007-10-02 15:37:27'', `next_action_date` =
''2013-03-31'' WHERE `id` 10 [0m
[4;36;1mSQL (0.016000) [0m [0;1mCOMMIT [0m
Redirected to http://localhost:3000/records/show/10
[4;35;1mStation Load (0.000000) [0m [0mSELECT * FROM stations
[0m
[4;36;1mMode Load (0.000000) [0m [0;1mSELECT * FROM modes [0m
[4;35;1mService Load (0.000000) [0m [0mSELECT * FROM services
[0m
[4;36;1mNextaction Load (0.000000) [0m [0;1mSELECT * FROM
nextactions [0m
Completed in 0.07800 (12 reqs/sec) | DB: 0.01600 (20%) | 302 Found
[http://localhost/records/update/10]
======
This is the log when it fails the validation:
Processing RecordsController#update (for 127.0.0.1 at 2007-10-02
15:37:37) [POST]
Session ID: 1199d4ef3d66c49f40253c314a4c5a9c
Parameters: {"commit"=>"Edit",
"action"=>"update", "id"=>"10",
"controller"=>"records",
"comment"=>[""],
"record"=>{"next_action_date(3i)"=>"31",
"last_action_date(1i)"=>"2012",
"last_action_date(2i)"=>"6",
"last_action_date(3i)"=>"7",
"service_id"=>"2", "mode_id"=>"1",
"nextaction_id"=>"1",
"nextaction2_id"=>"1",
"next_action_date(1i)"=>"2007",
"station_id"=>"1",
"next_action_date(2i)"=>"3"}}
[4;35;1mRecord Columns (0.000000) [0m [0mSHOW FIELDS FROM
records [0m
[4;36;1mRecord Load (0.000000) [0m [0;1mSELECT * FROM records
WHERE (records.`id` = 10) [0m
[4;35;1mSQL (0.000000) [0m [0mBEGIN [0m
[4;36;1mSQL (0.000000) [0m [0;1mCOMMIT [0m
Rendering actioneditlayoutfalse within layouts/records
Rendering records/edit
ActionView::TemplateError (You have a nil object when you didn''t
expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.inject) on line #4 of app/
views/records/_form.rhtml:
GPB
On Oct 2, 3:21 pm, GPB <gbar...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Hello,
>
> I have this validation code in my model.
>
> def validate
> errors.add(:last_action_date, "some message") if next_action_date
<
> last_action_date
> end
>
> Two date select fields.
>
> Without the code, as long as dates are valid (no 31st of February), no
> errors, works ok.
>
> With the code in place, when the next_action_date is before the
> last_action_date then I get a NoMethodError
>
> You have a nil object when you didn''t expect it!
> You might have expected an instance of Array.
> The error occurred while evaluating nil.inject
>
> The validation seems to work, but instead of stopping the code and
> going back into edit mode like all other rails validations, instead it
> gives an error.
>
> Can anyone point me in the right direction?
>
> Thank you,
>
> GPB
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---