2010-12-02 6 views
0

J'utilise les rails 3 et je veux changer le format de date par défaut de created_at et updated_at date quand je les enregistre dans la base de données.Modifier le format de date par défaut en% Y% m% d% H% M% S

format de date par défaut est %Y-%m-%d %H:%M:%S, mais je voudrais que ce soit %Y%m%d%H%M%S

Où dois-je changer le format? J'essaye de créer un time_formats.rb dans le dossier d'initialisation.

Voici le contenu:

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

Cela ne fonctionne pas. Est-ce qu'il y a quelqu'un qui peut m'aider? Je vous remercie.

Répondre

2

Les formats d'heure et de date que vous définissez dans les initialiseurs s'appliquent uniquement lors de leur conversion en chaînes dans Ruby. Les formats que vous avez définis seront utilisés comme Time.now.to_s(:default).

Je ne recommande pas (et je ne suis pas au courant d'un moyen) de changer la façon dont les dates sont stockées dans la base de données. Vous devez laisser la base de données les stocker comme elle le fait par défaut, puis modifier la façon dont ils sont formatés dans les vues en utilisant .to_s(:format) comme défini dans les initialiseurs.

0

Normalement, la base de données stocke les horodatages en tant que type de données Timedate spécifique plutôt qu'en tant que chaîne formatée. Si vous souhaitez que le style d'impression de l'horodatage par défaut soit différent, vous pouvez essayer de remplacer les méthodes created_at et updated_at:

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