我在Date上添加了一个方法,如下所示:
class Date
def days_different(date)
Float(self-date)
end
end
这在我的应用程序的其余部分中工作得很好,但是我在lib / tasks / database.rake中也有一个rake任务,它使用了这个,尽管有=> :环境依赖于任务(大大简化了下面显示的测试版本)。
task :test_days_different => :environment do
date = 2.days.ago
puts date.days_different(DateTime.now)
end
奇怪的是,rake:test在加载其环境时加载了辅助函数,所以我完全不知道为什么没有在rake db中加载它
有什么想法吗?
答案 0 :(得分:0)
您没有提到扩展Date类的位置,但我认为您必须在rake文件中要求'date'。
如果没有require语句,此代码段无效:
require 'date'
class Date
def days_different(date)
Float(self-date)
end
end
date = Date.new(2001,2,1)
puts date.days_different(DateTime.now)