2010-09-07 16 views
24

mi sto trovando a ripetere la digitazione molti strftime che ho definito.dove mettere le regole del formato dell'ora in Rails 3?

Dopo aver visto i railscast di Ryan Bates ep 32/33 (credo), ho creato un'opzione personalizzata per il metodo to_s come in Time.now.to_s, in modo da poter eseguire Time.now.to_s (: sw), dove: sw è il mio metodo personalizzato, per recuperare "23 set 2010, 5:00 PM" per esempio.

Ma il problema è, non so dove mettere la definizione di # sw. Dovrebbe essere in un file nella cartella di inizializzazione? O dovrebbe andare in application.rb?

Grazie!

+0

BTW http://strftime.net/ aiuta molto – Dorian

risposta

22

Ho un file contenente config/initialisers/time_formats.rb:

... 
Time::DATE_FORMATS[:posts] = "%B %d, %Y" 
Time::DATE_FORMATS[:published] = "%B %Y" 
... 

Hai solo bisogno di riavviare il server per avere le modifiche raccolto.

+0

Ok, lo pensavo anch'io. Anche perché in questo modo, puoi organizzare questi 'aiutanti' nei file piuttosto che nelle righe nell'applicazione.rb Grazie! –

5

Usa Rails I18n API.

# config/locales/en.yml 
en: 
    date: 
    formats: 
     default: "%Y-%m-%d" 
     short: "%b %d" 
     long: "%B %d, %Y" 

# in views 
= l post.updated_at # will use default format of date in locales yml file 

Vedere Informazioni I18n API

45

Usa "tempo" al posto di "data" nelle locali file, dal momento Rails timestamp sono datetimes.

in config/locali/en.yml

en: 
    time: 
    formats: 
     default: "%Y/%m/%d" 
     short: "%b %d" 
     long: "%B %d, %Y" 

in app/views/messaggi/show.html.haml

= l post.updated_at 
    = l post.created_at, :format => :long 
+5

Inoltre, vedere http://strftimer.com/ per i formati di tempo aiuto di costruzione. – tee

0

Si prega di leggere questo post:

Rails - to_formatted_s

Creare file con nome: config/inizializzatori/time_formats.rb

Time::DATE_FORMATS[:my_custom_time_format] = "%Y-%m-%d %H:%M" 

Ed è possibile utilizzare:

formated_date = my_date.to_formatted_s(:my_custom_time_format) 

Nota: è necessario riavviare il server di rotaie (WEBrick, fcgi, ecc)

+0

Ah, mi stava tirando fuori i miei capelli cercando di capire il motivo per cui i miei formati non stavano cambiando. Grazie per il consiglio di riavvio del server! – AndrewJM

Problemi correlati