0

次のような Date に追加したメソッドがあります。

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

これは私のアプリケーションの残りの部分でうまく機能しますが、タスクに => :environment 依存関係があるにもかかわらず、これがロードされていない場所でこれを使用する 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 にロードされないのか完全に困惑しています。

何か案は?

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 に答える