如何使用主动支持核心的分机日期和时间

时间:2018-05-30 02:57:28

标签: ruby-on-rails ruby datetime activesupport

什么是active_support/core_ext/date_and_time/calculations/date/time/date_time分别有DateTimeDateTime。但是什么是/date_and_time

我试图要求它而不是date_time,然后我为文件中定义的方法获得了NoMethodError。

1 个答案:

答案 0 :(得分:4)

那些模块date_and_time在那里,因为它们是所有DateTimeDateTime核心扩展包含的模块。这些模块使用相同的方法扩展这些类。因此,它们在Date Time下分组,因为您在所有类中都获得了相同的新方法。

因此,它们是模块,意味着作为扩展包含在内。您不能单独要求它们并期望新功能,除非您想通过include使用它们来扩展类功能。

这是一个直接来自Rails源代码的例子,说明它是如何使用的(在这种情况下取​​自core_ext/date/calculations):

require "active_support/core_ext/date_and_time/calculations"

class Date
  include DateAndTime::Calculations
  ...
end

您可以look at the source yourselfcheck out the docs添加方法。

例如,在DateTime中使用该扩展程序,您现在可以执行以下操作:

Time.now.last_year
Date.today.last_year

两种类都有相同的方法。