ruby-on-rails - 以美国格式: mm/dd/yyyy提交日期

标签 ruby-on-rails ruby-on-rails-3 date ruby-on-rails-4

我可以使用以下初始化程序使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/

相关文章:

ruby-on-rails - 如何为帖子建立标记系统?

ruby-on-rails - Rails服务器启动/停止

r - 如何在R中将日期转换为农历日期?

java - 通过java应用程序在windows机器上设置日期和时间的最佳方法

ruby-on-rails - 更新记录后,Active Admin 需要强制刷新

html - Rails 复选框和 field_with_errors 问题

ruby-on-rails-3 - 如何在 activeadmin gem 中隐藏资源

ruby-on-rails - 在 652ms 内完成 200 OK (Views : 50. 9ms | ActiveRecord : 18. 3ms)

ruby-on-rails-3 - 如何在 Rails 3.1 Controller 方法中转义 HTML?

sql 语句,现在 - unix/epoch 时间 6 个月