我发现自己重复输入许多我定义的 strftime。
看过 Ryan Bates 的 railscasts ep 32/33(我认为)后,我为 to_s 方法创建了一个自定义选项,如 Time.now.to_s,这样我就可以执行 Time.now.to_s(:sw),其中 :sw 是我的自定义方法,例如检索“2010 年 9 月 23 日,下午 5:00”。
但问题是,我不知道将#sw 的定义放在哪里。它应该在初始化文件夹中的文件中吗?还是应该放在 application.rb 中?
谢谢!
我发现自己重复输入许多我定义的 strftime。
看过 Ryan Bates 的 railscasts ep 32/33(我认为)后,我为 to_s 方法创建了一个自定义选项,如 Time.now.to_s,这样我就可以执行 Time.now.to_s(:sw),其中 :sw 是我的自定义方法,例如检索“2010 年 9 月 23 日,下午 5:00”。
但问题是,我不知道将#sw 的定义放在哪里。它应该在初始化文件夹中的文件中吗?还是应该放在 application.rb 中?
谢谢!
在您的语言环境文件中使用“时间”而不是“日期”,因为 Rails 时间戳是日期时间。
在config/locales/en.yml
en:
time:
formats:
default: "%Y/%m/%d"
short: "%b %d"
long: "%B %d, %Y"
在app/views/posts/show.html.haml
= l post.updated_at
= l post.created_at, :format => :long
我有一个文件config/initialisers/time_formats.rb包含:
...
Time::DATE_FORMATS[:posts] = "%B %d, %Y"
Time::DATE_FORMATS[:published] = "%B %Y"
...
您只需要重新启动服务器即可获取更改。
使用 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
了解I18n API
请阅读这篇文章:
创建文件名:config/initializers/time_formats.rb
Time::DATE_FORMATS[:my_custom_time_format] = "%Y-%m-%d %H:%M"
你可以使用:
formated_date = my_date.to_formatted_s(:my_custom_time_format)
注意:您必须重新启动您的 Rails 服务器(WEBRick、FCGI 等)