0

ActiveRecord::Base クラスのデフォルト値を定義する FactoryGirl ファクトリがあります。1つを除くすべての値は、1つを除いてインスタンス化されたクラスになります。

ここに私の工場があります:

FactoryGirl.define do
  factory :office, :class => Office do
    open_date '03/01/2011'
    set_up_date '04/28/2011'
    type_code 'D'
  end

  after(:build) do |office|
    puts "Office open_date: #{office.open_date}"
    puts "Office set_up_date: #{office.set_up_date}"
  end
end

これが私の基本クラスです:

class Office < ActiveRecord::Base
end

FactoryGirl.build :office を実行すると、次の出力が得られます。

Office open_date: 2011-01-03 00:00:00 -0500
Office set_up_date:

どちらの列も、データベースでは DATE データ型です。何らかの理由で、open_date のみが基本クラスに取り込まれています。これまでのところ、その理由を特定することはできませんでした。build を呼び出しているだけなので、データベース トリガーによる干渉はないと想定しても問題ないと思います。

set_up_date がクラス インスタンスに入力されない原因は何ですか?

バージョン:

activemodel (3.2.11)
activerecord (3.2.11)
activerecord-oracle_enhanced-adapter (1.4.1)
activesupport (3.2.11)
factory_girl (4.2.0)

JRuby 1.7.2 (Running Ruby in 1.9 mode)

ありがとう

4

1 に答える 1

1

set_up_date '28/04/2011'不思議なことに、代わりに試してみ04/28/2011ませんか?次のようFactoryGirlに入力を理解しているようDD/MM/YYYYです。

Office open_date: 2011-01-03 00:00:00 -0500

03-01ではなく01-03を参照してください。

于 2013-02-10T08:23:18.097 に答える