Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将库范围内的日期默认值更改为\u s格式_Ruby On Rails_Ruby_Date_Date Formatting_Ruby 2.4 - Fatal编程技术网

Ruby on rails 将库范围内的日期默认值更改为\u s格式

Ruby on rails 将库范围内的日期默认值更改为\u s格式,ruby-on-rails,ruby,date,date-formatting,ruby-2.4,Ruby On Rails,Ruby,Date,Date Formatting,Ruby 2.4,我希望库范围内的所有日期都具有通用格式(%d.%m.%Y“),而不是默认格式(%Y-%d-%m“)。现在我已经想出了三种不同的方法(我不喜欢任何一种)来实现我想要的。所有这些都按痛苦程度从大到小排列如下: 明确定义所有带有日期的属性,并在导出器中将其转换为必要的格式 用必要的格式为每个日期实例重新定义方法 使用自定义的to_s方法定义Date类的自定义后代 其他信息: 初始对象最多可以有3个嵌套,每个嵌套上都有Date类型的属性 Date类型的属性名称可以不同 我正在使用Virtus gem

我希望库范围内的所有日期都具有通用格式(
%d.%m.%Y“
),而不是默认格式(
%Y-%d-%m“
)。现在我已经想出了三种不同的方法(我不喜欢任何一种)来实现我想要的。所有这些都按痛苦程度从大到小排列如下:

  • 明确定义所有带有日期的属性,并在导出器中将其转换为必要的格式
  • 用必要的格式为每个
    日期
    实例重新定义
    方法
    
  • 使用自定义的
    to_s
    方法定义
    Date
    类的自定义后代
  • 其他信息

    • 初始对象最多可以有3个嵌套,每个嵌套上都有
      Date
      类型的属性
    • Date
      类型的属性名称可以不同
    • 我正在使用Virtus gem
    问题如下:


    有没有更好的方法来处理我正在努力解决的问题(如果没有,在上面已经提到的问题之间最优雅的方式是什么?

    创建另一个模块,并对其进行优化,以
    Date::to\s

    module MyDate
      refine Date do
        def to_s
          # here goes your implementation of to_s
        end
      end
    end
    
    然后:

     class NeedsCustomDateFormat
      using MyDate
      # All Date instances will have the custom to_s
     end