Ruby on rails 为什么在FactoryGirl和sample方法中使用create_list时会得到相同的对象?

Ruby on rails 为什么在FactoryGirl和sample方法中使用create_list时会得到相同的对象?,ruby-on-rails,rspec,factory-bot,Ruby On Rails,Rspec,Factory Bot,我使用factory girl定义如下对象: factory :event do #... category ['Life', 'Course', 'Speek'].sample #... end 然后在spec/models/event_spec.rb中,我有以下内容: before(:each) do @events = FactoryGirl.create_list(:event, 10, node: school) end #... binding.pry

我使用factory girl定义如下对象:

factory :event do
  #...
  category ['Life', 'Course', 'Speek'].sample
  #...
end
然后在
spec/models/event_spec.rb
中,我有以下内容:

before(:each) do
  @events = FactoryGirl.create_list(:event, 10, node: school) 
end
  #...
binding.pry   
但是当我使用pry检查
@events
时,我发现
@events
中的所有
事件都具有相同的
类别


我想知道为什么以及如何解决它?提前感谢。

代码
类别['Life'、'Course'、'Speek']。示例只运行一次(定义工厂时)。如果要在每次创建或构建
事件时生成新类别,可以使用
序列,如下所示:

sequence(:category) { ['Life', 'Course', 'Speek'].sample }

代码
category['Life'、'Course'、'Speek']。示例
仅运行一次(定义工厂时)。如果要在每次创建或构建
事件时生成新类别,可以使用
序列,如下所示:

sequence(:category) { ['Life', 'Course', 'Speek'].sample }

哦,是的,非常感谢~不要创建序列,只需在样本周围放置一个块:
类别{['Life','Course','Speek'].sample}
哦,是的,非常感谢~不要创建序列,只需在样本周围放置一个块:
类别{['Life','Course','Speek'].sample}