2010-09-07 13 views
24

Kendimi tanımladığım birçok strftime yazmayı tekrarlıyorum.Rails 3'te zaman biçimi kurallarını nereye koyabiliyor?

Ryan Bates'ın railscasts ep 32/33 (sanırım) filmini izleyerek Time.now.to_s'daki to_s yöntemi için özel bir seçenek oluşturdum, böylece Time.now.to_s (: sw) yapabilirim, Burada: sw, örneğin "23 Eylül 2010, 17:00" almak için özel yöntemim.

Ancak sorun şu ki, # sw'nin tanımını nereye koyacağımı bilmiyorum. Başlatma klasöründe bir dosyada olması gerekir mi? Veya application.rb içinde mi gitmeli?

Teşekkürler!

+0

BTW http://strftime.net/ – Dorian

cevap

22

Bir dosyayı config/initialisers/time_formats.rb içeren vardır:

sadece değişiklikler aldı olması sunucunuzu yeniden başlatmanız gerekiyor
... 
Time::DATE_FORMATS[:posts] = "%B %d, %Y" 
Time::DATE_FORMATS[:published] = "%B %Y" 
... 

.

+0

Tamam, ben de öyle düşünmüştüm bir sürü yardımcı olur, too.Also tarzından dolayı, yerine application.rb ShiftPDA hatlarında daha dosyalarda bu 'yardımcıları' organize etmek olsun! –

5

Raylar I18n API'yi kullanın. Raylar damgaları tarihsaat olduğundan

# 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 

, bunun yerine yerel ayarları "tarih" yaklaşık I18n API

45

Kullanım "zaman" dosyasına bakın. app/views/mesajların/show.html.haml içinde

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

config/yerel/en.yml içinde

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

Ayrıca, yardım oluşturma süreleri için http://strftimer.com/ adresine bakın. – tee

0

bu yazıyı okuyunuz:

adıyla dosyası oluşturun: config/ilklendiriciler/time_formats.rb

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

Ve kullanabilirsiniz:

formated_date = my_date.to_formatted_s(:my_custom_time_format) 

Not: Eğer raylar sunucusu (WEBrick, fcgi, vs) yeniden başlatmak için gereken

+0

Ah, formatlarımın neden değişmediğini anlamaya çalışırken saçlarımı çekiyordum. Sunucu yeniden başlatma ipucu için teşekkürler! – AndrewJM

İlgili konular