Factory_girl使用#create_list,在所有创建的对象之间共享相同的关联

时间:2016-06-27 20:32:58

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

考虑以下关联:

class Blog < ApplicationRecord
  belongs_to :user
  belongs_to :foobar
end

class User < ApplicationRecord
  has_many :blogs
end

class Foobar < ApplicationRecord
  has_many :blogs
end

到目前为止,这是我的工厂:

FactoryGirl.define do
  factory :blog do
    user
    foobar
  end
end

FactoryGirl.define do
  factory :user do
  end
end

FactoryGirl.define do
  factory :foobar do
  end
end

以下是我想要做的事情:我想使用create_list创建5 blogs。但是:我希望所有blogs都与相同的user记录和相同的foobar记录相关联。换句话说:我希望所有5 blogs完全相同 user_idfoobar_id

我确实浏览了factory_girl docs。这种具体情况让我感到沮丧。

1 个答案:

答案 0 :(得分:1)

您应该能够像其他属性一样分配关系。 e.g:

user = create(:user)
foobar = create(:foobar)
blogs = create_list(:blog, 5, user: user, foobar: foobar)