我在Rails中有一个表单,该表单的日期字段带有格式为mm/dd/yyyy
的输入掩码,但是在保存时,由于模型的格式为{{1} }。我找到了可能可行的解决方案。
dd/mm/yyyy
但是我需要一个更优雅的解决方案,因为我拥有更多类型为date的字段,并且我不能为每个字段都这样做,并且将格式更新为输入掩码到 def organization_date=(val)
date = Date.strptime(val, “%m/%d/%Y”) if val.present?
write_attribute(:organization_date, date)
end
也不可行,因为客户端的要求格式为dd/mm/yyyy
我正在使用Rails 6.0 beta
对于能帮助解决此问题的任何想法,我表示感谢
答案 0 :(得分:1)
您可以将活动记录默认配置为这种格式,但是我建议以下解决方案。因此您可以轻松地在整个应用程序中格式化日期。
猴子补丁Date类是这样的:
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --insecure-egistry=<repo-address>:<port>
用法:
# config/initializers/date.rb
class Date
def to_fd
strftime('%m/%d/%Y')
end
end
答案 1 :(得分:0)
在您的config/initializers/
中创建date_format.rb
:
# Date
Date::DATE_FORMATS[:default] = "%m/%d/%Y"
然后重新启动Rails服务器。
答案 2 :(得分:0)
我认为最好的解决方法是在config / initializers / date_format.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