3

我有一个这样的工厂:

FactoryGirl.define do
  factory :member_data,
          :class => Member do
    first_name 'fn_member'
    last_name 'ln_member'
  end
end

当我运行时db:migrate,FactoryGirl 在创建Member表之前被调用。而且我遇到了一些错误,例如“找不到属性”。我在网上搜索时发现有些东西必须是惰性初始化的,例如:

Factory.define :order do |f|
  ...
  f.code_id Code.first
end

一定是:

Factory.define :order do |f|
  ...
  f.code_id { Code.first }
end

事实上,如果我删除:class => Member迁移成功。但是我怎么能懒惰地定义工厂:class???

谢谢

4

1 回答 1

3

ActiveRecord允许:class_name => "ClassNameInQuotes"在其关联中,FactoryGirl 也可以这样做。只需将类名放在引号中即可。

FactoryGirl.define do
  factory :member_data, :class => "Member" do
    first_name 'fn_member'
    last_name 'ln_member'
  end
end
于 2012-07-12T20:43:16.597 回答