0
回到今天的日期爲便於演示:說我包括模塊TodayDynamicDate
在到模型下面Foo
:的Rails在運行時動態
# 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
動態返回方法運行的日期。我不希望它返回導軌服務器啓動的靜態日期。
例子:
說我今天啓動服務器,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
來做到這一點?
謝謝你的迴應。那麼你是說如果'todays_date'是一個類方法,那麼它會返回一個靜態日期? – Neil
方法(類或實例方法)將始終返回今天的日期而不是某個舊的緩存值。如果您正在使用類變量,即如果您執行了@@ today = todays_date',並且在代碼中使用了@@ today',那麼您將遇到麻煩 –