在FactoryGirl中创建值数组,每个值都是唯一的

Bet*_*rds 4 ruby-on-rails ruby-on-rails-3.2 factory-bot

我有这个工厂定义:

factory :post, :parent => :post_without_countries, class: Post do |p|
       p.country_ids {|country_ids| [country_ids.association(:country), country_ids.association(:country)]} 
end
Run Code Online (Sandbox Code Playgroud)

而且我希望它输出两个独特的国家.相反,它只是插入与协会相同的国家/地区两次:

#<Post id: nil, title: "Atque id dolorum consequatur.", body: "Praesentium saepe ullam magnam. Voluptatum tempora ...", created_at: nil, updated_at: nil, user_id: 1>
[#<Country id: 1, name: "Dominican Republic", isocode: "lyb", created_at: "2012-10-20 13:52:18", updated_at: "2012-10-20 13:52:18">, #<Country id: 1, name: "Dominican Republic", isocode: "lyb", created_at: "2012-10-20 13:52:18", updated_at: "2012-10-20 13:52:18">]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

art*_*yan 8

更好地使用build_listcreate_list方法:

post.countries = create_list(:country, 2)
Run Code Online (Sandbox Code Playgroud)