views:

75

answers:

2

I have a simple function within my model to set a completed datetime column in a database. this function worked until I tried to change the default rails format for datetime.

After reading up on the issues with mysql datetime format and rails I decided to take out the formating code I had in the environment.rb

It still does not save though. I want it to save the same way that created_at etc. save. I can then format the display of the date.

I have restarted the web server

Model:

def self.complete(id)
   update(id, :completed_at => Time.now)
end

Controller:

Class.complete(params[:id])
A: 

You could try:

update(id, :completed_at => Time.now.to_s(:db))
vise
I did try this earlier, unfortunately it made no difference.
inKit
+1  A: 

Since you want to update a specific instance of your class (a specific record), you may switch from a class method to an instance method.

In your model:

def complete
  update_attribute(:completed_at, Time.now)
end

and in your controller:

def your_method
  @object = YourModel.find(params[:id])
  @object.complete
end
Yannis