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)
ありがとう