我可以使用以下初始化程序使Rails显示mm/dd/yyyy:
date_format.rb
Date::DATE_FORMATS[:default]="%m/%d/%Y"
或l18n使用this answer
但这不会更改提交日期的方式。提交时:
10/02/2014
将解析为
@entry.photo_date
Mon, 10 Feb 2014
我正在寻找一种以mm/dd/yyyy格式提交日期的方法。
我希望能够集中执行此操作,因此不必在整个应用程序中重复执行代码
最佳答案
在现代 ruby (即prepend
)中,您可以在Rails的前面插入自己的类型转换。您将要针对所使用的其他任何日期/时间格式执行此操作。这是Date
的代码,只需将其粘贴在config/initializers/typecasts.rb
或某处即可:
module Typecasting
module Date
def cast_value v
::Date.strptime v, "%m/%d/%Y" rescue super
end
end
::ActiveRecord::Type::Date.prepend Date
end
Rails将尝试使用美式格式,如果不起作用,则退回到使用内置方法。
关于ruby-on-rails - 以美国格式: mm/dd/yyyy提交日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27805060/