将工厂的值传递给关联的

时间:2017-11-16 00:23:06

标签: factory-bot

FactoryBot GETTING STARTED page中,有以下代码段,其中说明了如何创建关联。

factory :post do
  # ...
  association :author, factory: :user, last_name: "Writely"
end

就我而言,我需要将工厂的值传递给相关的工具。

factory :post do
  category: ['a','b','c'].sample
  association :author, factory: :user, expertise: ??CATEGORY??
end

我尝试了几件事(主要是花括号),但似乎没有任何效果:Trait未注册:类别。

有没有办法将为帖子选择的类别传递给作者?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用after(:build)回调:

factory :post do
  category ['a','b','c'].sample
  association :author, factory: :user

  after(:build) do |post|
    post.author.expertise = post.category
  end
end