Forum: Ruby on Rails date in controller? Killing me!

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Mike D. (Guest)
on 2007-02-18 21:34
Hi:

I've tackled this problem three seperate times with a couple of posts
and still can't get it to work.

All I really want to do is grab a value in not-exactly date format and
put it in a mysql database datetime column with a time of zero.  The
frustrating thing is that I've tried it in the console and it's totally
working.  But when I go back to the DB, it's just not there:

    @task = Task.new(params[:task])
  @task.duedate = params[:task][:duedate]
    @task.save!

Pretty simple, right?  It's not there.  I also put it in a session
variable just to make sure I'm actually getting the value from paras -
no problem, it's there:

  session[:duedate] =  params[:task][:duedate]

But still not in the DB.  I've tried it a bunch of different ways,
including trying a session variable

@date = params[:task][:duedate]
@task.duedate = @date

That didn't work.  The really bad part - when I just try a string:

@task.duedate = "04/03/2007"

Again, nothing, even though in the console, I was able to get it to
work.

What the heck am I doing wrong?  Any help you can give would be greatly
appreciated!  As you can see, I'm going nuts!

Thanks in advance!

Mike
Jay Jansheski (Guest)
on 2007-02-18 22:43
(Received via mailing list)
Try @task.duedate = "2007-04-03"

On Feb 18, 2:34 pm, Mike D. <removed_email_address@domain.invalid>
Bryan D. (Guest)
on 2007-02-19 01:40
Why are you setting the duedate separately? From your code, the :duedate
field is in the :task hash, so if there's a database column called
duedate on the table task, it should work automatically.

I would focus on the format of the date coming in. Are you letting the
user type in any date they'd like? The the other respondent, MySQL
expects dates in YYYY-MM-DD format.

Mike D. wrote:
> Hi:
>
> I've tackled this problem three seperate times with a couple of posts
> and still can't get it to work.
>
> All I really want to do is grab a value in not-exactly date format and
> put it in a mysql database datetime column with a time of zero.  The
> frustrating thing is that I've tried it in the console and it's totally
> working.  But when I go back to the DB, it's just not there:
>
>     @task = Task.new(params[:task])
>   @task.duedate = params[:task][:duedate]
>     @task.save!
>
> Pretty simple, right?  It's not there.  I also put it in a session
> variable just to make sure I'm actually getting the value from paras -
> no problem, it's there:
>
>   session[:duedate] =  params[:task][:duedate]
>
> But still not in the DB.  I've tried it a bunch of different ways,
> including trying a session variable
>
> @date = params[:task][:duedate]
> @task.duedate = @date
>
> That didn't work.  The really bad part - when I just try a string:
>
> @task.duedate = "04/03/2007"
>
> Again, nothing, even though in the console, I was able to get it to
> work.
>
> What the heck am I doing wrong?  Any help you can give would be greatly
> appreciated!  As you can see, I'm going nuts!
>
> Thanks in advance!
>
> Mike
This topic is locked and can not be replied to.