如何将单个记录与多个工厂女孩模型相关联?

时间:2015-03-05 19:15:54

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

我有一个用户模型和国家/地区模型。有一组有限的国家(现在只有1个),在我的工厂中,我不确定如何将每个用户记录与一个国家/地区相关联。我尝试创建一个国家工厂并将每个用户与一个国家/地区相关联但由于我的国家/地区数据是静态的,因此它尝试为每个用户创建一个新国家/地区,但由于我在国家/地区拥有唯一性验证,因此失败了。这就是我的尝试:

  factory :country do
    country_iso 'GB'
    country_code 44
    country 'United Kingdom'
    active true
  end

  factory :user do
    email { Faker::Internet.email }
    password { Faker::Internet.password(10) }
    country

    after(:create) do |usr, evaluator|
      create_list(:canned_response, 3, user: usr)
    end

    trait :admin do
      admin true
    end
  end

如何创建每个用户工厂创建的单个国家/地区?

1 个答案:

答案 0 :(得分:0)

您可以使用现有国家/地区,也可以创建一个国家/地区:

factory :user do
  email { Faker::Internet.email }
  password { Faker::Internet.password(10) }
  country { Country.first || create(:country) }

  # ...
end