2010-09-03 5 views
2

Je veux changer l'horodatage par défaut des colonnes magiques de rails (created_at, modified_at) au lieu du 2010-09-03 14:52:46 UTC Je voudrais le changer au 10 septembre 2010 à 14h52. ou au moins analyser de cette façon. Maintenant, je sais que je peux le faire correctement dans la vue, en manipulant la variable, mais n'y a-t-il pas une façon plus «railish» où je peux juste faire ceci dans le modèle, et puis l'appeler comme méthode?Changement de l'horodatage des colonnes magiques (Rails)

Répondre

4
class YourModel < ActiveRecord::Base 
    def my_formated_date_time 
    created_at.strftime("%B %d, %Y at %I:%M %p") 
    end 
end 

Ou vous pouvez utiliser le format de localisation. Ajoutez ceci à votre config/locale/your_locale.yml. À mon humble avis: Ce serait le plus chemin de fer.

your_locale: 
    time: 
    formats: 
     default: "%B %d, %Y at %I:%M %p" 

Alors à votre avis faire ce

<%=l @your_model.created_at %> 
<!-- short for: --> 
<%= I18n.localize @your_model.created_at %> 
+0

Merci! C'était exactement ce que je cherchais :-) – Gotjosh

1

La modification de la date created_at est correcte, elle sera conservée comme vous l'avez définie et vous pouvez la surcharger même au début, mais updated_at ou modified_at peut s'avérer difficile. Chaque fois que vous enregistrez votre modèle, ceci est changé. Si vous ne voulez pas de ce comportement, la convention suggère de changer de nom.

Si vous souhaitez ajuster la manière dont les dates sont affichées, vous devez configurer le formateur par défaut.

Questions connexes