1

FactoryGirlの初心者です。

私はFactoryGirlのモデルをたくさん持っています。それらは互いに関連しています。

次のモデルを次のように宣言しました。

class Organization < ActiveRecord::Base
  has_many :org_plan_years
  has_many :subscribers
end

class Subscriber < ActiveRecord::Base
  belongs_to :organization
end

class OrgPlanYear < ActiveRecord::Base
  belongs_to :organization
  has_many :coverages
end

class Coverage < ActiveRecord::Base
  belongs_to :subscriber
  belongs_to :org_plan_year
  belongs_to :organization
end

FactoryGirl を定義します。

工場/組織.rb

FactoryGirl.define do
  factory :organization_benefit, class Organization do
    name 'Benefit'
    organization_code '2341'
  end
end

factory/subscribers.rb

FactoryGirl.define do
  factory :subscriber_875450002, class: Subscriber do
    association :organization, factory: :organization_benefit
    ssn 875450002
  end
end

factory/org_plan_years.rb

FactoryGirl.define do
  factory :org_plan_year_benefit, class: OrgPlanYear do
    association :organization, factory: :organization_benefit
    name 'First OPY'
  end
end

factory/coverages.rb

FactoryGirl.define do
  factory :coverage_1, class: Coverage do
    association :subscriber,    factory: :subscriber_875450002
    association :org_plan_year, factory: :org_plan_year_benefit
  end
end

テストのサンプル:

it 'test' do
  FactoryGirl.create(:coverage_1)
end

テストを実行すると、次のようなエラーが表示されます。

ActiveRecord::RecordInvalid: Validation failed: Organization code has already been taken

工場で何度か組織を立ち上げたことが原因だと思いますが、解決できません。

4

1 に答える 1