2010-09-14 5 views
1

J'ai une fonction simple dans mon modèle pour définir une colonne datetime complétée dans une base de données. cette fonction a fonctionné jusqu'à ce que j'ai essayé de changer le format de rails par défaut pour datetime.Rails sauvegardant la date et l'heure dans la base de données MySQL

Après avoir lu sur les questions au format datetime mysql et les rails, j'ai décidé de prendre le code formating j'avais dans le environment.rb

Il ne sauve pas toujours bien. Je veux le sauvegarder de la même façon que created_at etc. save. Je peux ensuite formater l'affichage de la date.

J'ai redémarré le serveur web

Modèle:

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

Controller:

Class.complete(params[:id]) 

Répondre

2

Puisque vous souhaitez mettre à jour un particulier instance de votre classe (un enregistrement spécifique), vous pouvez passer d'une méthode de classe à une méthode d'instance.

Dans votre modèle:

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

et dans votre contrôleur:

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

Vous pouvez essayer:

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

J'ai essayé plus tôt, malheureusement, il n'a fait aucune différence. – Rumpleteaser

Questions connexes