2010-12-02 11 views
0

Ich verwende Rails 3 und ich möchte das Standarddatumsformat von created_at und updated_at date ändern, wenn ich sie in die db speichere.Ändern Sie das Standarddatumsformat in% Y% m% d% H% M% S

Standard Datumsformat ist %Y-%m-%d %H:%M:%S, aber Ich würde es %Y%m%d%H%M%S

Wo soll ich das Format zu ändern sein? Ich versuche, eine time_formats.rb im Initialisiererordner zu erstellen.

Hier Inhalt:

class TimeFormats 
    Time::DATE_FORMATS[:db] = "%Y%m%d%H%M%S" 
    Time::DATE_FORMATS[:default] = "%Y%m%d%H%M%S" 
end 

Dies funktioniert nicht. Gibt es jemanden, der mir helfen kann? Vielen Dank.

Antwort

2

Die Zeit- und Datumsformate, die Sie in den Initialisierungen definieren, gelten nur, wenn Sie sie in Ruby in Zeichenfolgen konvertieren. Die von Ihnen definierten Formate werden wie Time.now.to_s(:default) verwendet.

Ich empfehle (noch bin ich mir bewusst, wie), wie Daten in der Datenbank gespeichert werden. Sie sollten die Datenbank standardmäßig so speichern lassen, wie sie in den Ansichten formatiert sind, indem Sie wie in den Initialisierern definiert verwenden.

0

Normalerweise speichert die Datenbank die Zeitstempel als einen spezifischen Zeitdatentyp und nicht als formatierten String. Wenn Sie möchten, dass der standardmäßige Zeitstempeldruckstil anders ist, versuchen Sie möglicherweise, die Methoden created_at und updated_at zu überschreiben:

def updated_at 
    super.strftime("%Y%m%d%H%M%S") 
    end 
Verwandte Themen