时间:2017-07-13 10:43:38

标签: ruby-on-rails ruby date date-formatting ruby-2.4

我希望库范围内的所有日期都有一个通用格式("%d.%m.%Y")而不是默认格式("%Y-%d-%m")。现在我已经提出了3种不同的方法(我不喜欢它们中的任何一种)来实现我想要的。所有这些都按照从大多数到较少痛苦的顺序表示如下:

  1. 明确定义所有带日期的属性,并在导出器中以必要的格式进行转换;
  2. 使用必要的格式为每个to_s实例重新定义Date方法;
  3. 使用自定义Date方法定义to_s类的自定义后代。
  4. 其他信息

    • 初始对象最多可以有3个嵌套,每个嵌套都有Date类型的属性;
    • Date类型的属性名称可能会有所不同;
    • 我正在使用Virtus gem。

    问题如下:

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

1 个答案:

答案 0 :(得分:1)

创建另一个模块,其中包含对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