0

我在 Date 上添加了一个方法,如下所示:

class Date
  def days_different(date)
    Float(self-date)
  end
end

这在我的应用程序的其余部分工作得很好,但是我在 lib/tasks/database.rake 中也有一个 rake 任务,它使用这个没有被加载的地方,尽管有 => :environment 对任务的依赖(大大简化了测试版本如下所示)。

task :test_days_different => :environment do
  date = 2.days.ago
  puts date.days_different(DateTime.now)
end

奇怪的是, rake:test 在加载其环境时加载了辅助函数,所以我完全不明白为什么它没有加载到 rake db

有任何想法吗?

4

1 回答 1

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)
于 2012-11-08T21:17:08.270 回答