无法与Factory Girl建立has_many关联

时间:2014-11-21 22:19:54

标签: ruby-on-rails factory-bot

我在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所以我不必在每个工厂设置它?

1 个答案:

答案 0 :(得分:1)

我有一个类似的问题,根据我正在阅读的所有文档,它应该一直在工作。这是最终工作的(适合您的代码):

变化

build_list(:post, evaluator.posts_count, user: user)

user.posts = build_list(:post, evaluator.posts_count, user: user)

如果这不起作用,请告诉我,但这就是为我解决的问题。