Re: [Rails] Can't Save a new object even though the request parameters are correct

32 views
Skip to first unread message

Dheeraj Kumar

unread,
Jan 2, 2013, 4:49:05 AM1/2/13
to rubyonra...@googlegroups.com
What is the executed SQL? Look at your development log.

-- 
Dheeraj Kumar

On Wednesday 2 January 2013 at 1:00 AM, Hillary Hueter wrote:

My form fails with the error Mysql2::Error: Column 'date_of_birth' cannot be null. However the Request Parameters have a value for date_of_birth, so i'm not sure whats going on. 
Request:
{"utf8"=>"✓",
 "authenticity_token"=>"3njnNBX4VgoV32kau3OALfhdIP00Bq78we6EKD7OXHo=",
 "pilgrim"=>{"surname"=>"Lorem",
 "first"=>"Ipsum",
 "middle"=>"Lorem",
 "aka"=>"Lorem",
 "title"=>"Mrs. ",
 "address"=>"111 Mockingbird Lane",
 "city"=>"City",
 "state"=>"CA",
 "email"=>"lorem...@gmail.com",
 "telephone"=>"889-279-2727",
 "nationality"=>"USA",
 "passport_number"=>"123455",
 "expiration"=>"06-15-2015",
 "date_of_birth"=>"06-15-1086",
 "jordan"=>"yes",
 "room"=>"Share",
 "leader"=>"Group Leader",
 "price"=>"4000",
 "deposit"=>"500",
 "trip_id"=>"44",
 "balance"=>"3500"},
"commit"=>"Save"}


Here's a gist with the form and controller code that's causing the issue. 
https://gist.github.com/4429457

--
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 rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/oKhWrEOR_WcJ.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Rafi A

unread,
Jan 2, 2013, 4:57:53 AM1/2/13
to rubyonra...@googlegroups.com
What is the datatype that you have set for the date_of_birth column? If it's date-time, then you can try convert the string into Date object first and then store the parsed value in database.

tamouse mailing lists

unread,
Jan 2, 2013, 11:44:04 AM1/2/13
to rubyonra...@googlegroups.com
Is this valid?

>> "date_of_birth"=>"06-15-1086",

??

Hillary Hueter

unread,
Jan 3, 2013, 1:34:09 AM1/3/13
to rubyonra...@googlegroups.com
It was what i put in. It's probably not entirely valid, but i haven't put that type of validation into the form yet. 

tamouse mailing lists

unread,
Jan 3, 2013, 2:07:00 AM1/3/13
to rubyonra...@googlegroups.com
What shows up in your log?

tamouse mailing lists

unread,
Jan 3, 2013, 2:29:25 AM1/3/13
to rubyonra...@googlegroups.com
I'm just curious how it works, and how your model is set up. Entering
a date value of "06-15-1086" into mysql gives a 0 date. Assuming
that's MM-DD-YYYY, mysql needs YYYY-MM-DD unless you do some other
munging. (Plus, I'm curious about a birth year 1000 years ago...)

weimar

unread,
Jan 3, 2013, 3:06:56 AM1/3/13
to rubyonra...@googlegroups.com
If i was going to put the date into the correct format, would i do it within the controller or the model?

Hillary Hueter

unread,
Jan 3, 2013, 5:22:38 AM1/3/13
to rubyonra...@googlegroups.com
i think this had something to do with the type of the date_of_birth column. I've changed it from datetime to date. and it seems to be working. 

tamouse mailing lists

unread,
Jan 3, 2013, 10:24:51 PM1/3/13
to rubyonra...@googlegroups.com
On Thu, Jan 3, 2013 at 2:06 AM, weimar <weima...@gmail.com> wrote:
> If i was going to put the date into the correct format, would i do it within
> the controller or the model?

If you consider that a valid form of date (which it is), then doing
the manipulation to make it work in the model should go in the model,
notably using a before_save hook.

OTOH, if you accept any sort of string in that field, you will
probably need to validate it's contents before passing it off to the
model, and that should go in the controller.

OTOOH, put it where it makes the most sense to you.

weimar

unread,
Jan 4, 2013, 2:04:01 AM1/4/13
to rubyonra...@googlegroups.com
ok. thanks. 

Reply all
Reply to author
Forward
0 new messages