我有一个FactoryGirl工厂为ActiveRecord :: Base类定义一些默认值。除了一个之外的所有值都使它成为实例化的类,除了一个。
这是我的工厂:
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)
由于
答案 0 :(得分:1)
出于好奇,你会尝试set_up_date '28/04/2011'
而不是04/28/2011
吗?看起来FactoryGirl
根据以下内容将您的输入理解为DD/MM/YYYY
Office open_date: 2011-01-03 00:00:00 -0500
请参阅 01-03 而非 03-01 吗?