1

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])

2 Answers 2

2

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
Sign up to request clarification or add additional context in comments.

Comments

1

You could try:

update(id, :completed_at => Time.now.to_s(:db))

1 Comment

I did try this earlier, unfortunately it made no difference.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.