我在Rails 4.1.6中有User
个帖子has_many
。在Getting Started page for Factory Girl之后,我创建了这些工厂:
factory :post do
skip_create
title 'foo bar'
user
end
factory :user do
skip_create
id 1
username 'alice'
factory :user_with_posts do
skip_create
transient do
posts_count 5
end
after(:build) do |user, evaluator|
build_list(:post, evaluator.posts_count, user: user)
end
end
end
但是调用build(:user_with_posts)
会返回一个空User
数组的posts
。调用build_list(:post, 5, user: user)
(使用预先构建的User
)可以正常工作。
我错过了什么?
另外,有没有办法设置全局skip_create
所以我不必在每个工厂设置它?
答案 0 :(得分:1)
我有一个类似的问题,根据我正在阅读的所有文档,它应该一直在工作。这是最终工作的(适合您的代码):
变化
build_list(:post, evaluator.posts_count, user: user)
到
user.posts = build_list(:post, evaluator.posts_count, user: user)
如果这不起作用,请告诉我,但这就是为我解决的问题。