0
Yinelenen şirketlerin oluşturulmadığından emin olmak için bir özellik oluşturmaya çalışıyorum. Aşağıdaki spesifikasyonları kullandığım zaman şirket uygun şekilde atanır, ancak fabrika hala 3 şirket oluşturur. Bu istenen davranış değildir.Raylar 4 rspec 3 doğrulamadan önce test
Onaylamadan önce geri arama kriterlerini karşılamak için bu özelliği nasıl ayarlayabilirim?
Spec
describe 'before validation' do
it 'prevents duplicate companies' do
company = create(:company)
job1 = create(:job, company: company)
job2 = create(:job, company: company)
binding.pry
end
end
Modeli
class Job < ActiveRecord::Base
...
before_validation :find_company
...
private
...
def find_company
existing_company = Company.where(email: company.email) if company
self.company = existing_company.first if existing_company.count > 0
end
end
Fabrika
FactoryGirl.define do
factory :job do
category
company
title { FFaker::Company.position }
location { "#{FFaker::Address.city}, #{FFaker::AddressUS.state}" }
language_list { [FFaker::Lorem.word] }
short_description { FFaker::Lorem.sentence }
description { FFaker::HTMLIpsum.body }
application_process { "Please email #{FFaker::Internet.email} about the position." }
end
end