如何每次生成不同的属性

How to generate different attributes everytime

在我的代码中,100 家商店共享相同的属性。

我认为它应该每次都创建一个不同的。

(1..100).each do
  store_attr = FG.attributes_for :store
  store_attr[:account] = accounts.sample
  stores << Store.create(store_attr)
end

FactoryGirl.define do
  factory :store do
    name Faker::Company.name
    latitude 1.5
    longitude 1.5
    street Faker::Address.street_address
    city Faker::Address.city
    state Faker::Address.state
    zip_code Faker::Address.zip_code
    phone Faker::PhoneNumber.cell_phone
    email Faker::Internet.email
    website "https://#{Faker::Internet.domain_name}"
    account nil
    factory :complete_store do
      name 'store_with_account'
      account
    end
  end
end 

我认为您需要将它们放在一个块中 -

street { Faker::Address.street_address }

否则它们将只生成一次并为所有实例重复使用。您可以阅读更多 here.