我有一个这样的工厂:
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
???
由于
答案 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