Factory Girl和延迟初始化,同时运行db:migrate

时间:2012-07-12 20:17:37

标签: ruby-on-rails rake factory-bot

我有一个这样的工厂:

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

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

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 ???

由于

1 个答案:

答案 0 :(得分: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