未在ActiveRecord类实例上填充FactoryGirl属性值

时间:2013-02-10 07:27:30

标签: ruby activerecord factory-bot

我有一个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)

由于

1 个答案:

答案 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 吗?