Rails在运行时动态返回今天的日期

时间:2016-07-01 15:15:25

标签: ruby-on-rails ruby

出于演示目的:说我在模块TodayDynamicDate中加入了下面的模型Foo

# app/models/concerns/today_dynamic_date.rb
module TodayDynamicDate
  extend ActiveSupport::Concern

  def todays_date
    Date.today
  end
end

#app/models/foo.rb
class Foo < ApplicationRecord
  include TodayDynamicDate
end

我想知道在#todays_date方法中使用混合方法是否符合我的要求。

我希望方法#todays_date动态返回方法运行的日期。我不希望它返回rails服务器启动的静态日期。

示例:

说我今天启动服务器Friday, July 1st, 2016。以下是我希望今天返回的方法:

Foo.new.todays_date
  => Fri, 01, Jul 2016

服务器继续运行,现在是Tuesday, July 5th, 2016。在应用程序中调用相同的方法,这是我期望它返回的内容:

# dynamically returning the date that the method was called
Foo.new.todays_date
  => Tues, 05, July 2016

我想确保不会返回此内容:

# returning a static date
Foo.new.todays_date
  => Fri, 01, Jul 2016

问题:我的实施会返回动态日期吗?如果它不会返回动态日期:我将如何使用混合方法todays_date执行此操作?

1 个答案:

答案 0 :(得分:2)

答案是肯定的。每次拨打Date.today都会返回当前日期。

todays_date不是一个类(你所指的是静态的)变量,它是一个方法。