创建工厂时出现ActiveRecord::RecordInvalid错误如何解决?
How to solve the ActiveRecord::RecordInvalid error when creating a factory?
我有模型
class Income < ApplicationRecord
belongs_to :income_type
has_one :order
validates_associated :income_type
validates_presence_of :income_type
我为她创建一个工厂
FactoryBot.define do
factory :income do
income_type
amount { 100.0 }
end
end
但是它不起作用并抛出错误
Failure/Error: let!(:income) { create(:income) }
ActiveRecord::RecordInvalid: Error
我相信这是由于 income_type
的验证而发生的。
如果您有 income_type
的工厂。你可以通过两种方式做到这一点。
直接提供income_type
let(:income_type) { create(:income_type) }
let!(:income) { create(:income, income_type: income_type) }
或者在 income
工厂中定义一个关联。
FactoryBot.define do
factory :income do
association(:income_type)
amount { 100.0 }
end
end
我有模型
class Income < ApplicationRecord
belongs_to :income_type
has_one :order
validates_associated :income_type
validates_presence_of :income_type
我为她创建一个工厂
FactoryBot.define do
factory :income do
income_type
amount { 100.0 }
end
end
但是它不起作用并抛出错误
Failure/Error: let!(:income) { create(:income) }
ActiveRecord::RecordInvalid: Error
我相信这是由于 income_type
的验证而发生的。
如果您有 income_type
的工厂。你可以通过两种方式做到这一点。
直接提供income_type
let(:income_type) { create(:income_type) }
let!(:income) { create(:income, income_type: income_type) }
或者在 income
工厂中定义一个关联。
FactoryBot.define do
factory :income do
association(:income_type)
amount { 100.0 }
end
end