Я использую FactoryGirl драгоценный камень, чтобы создать следующую фабрику:Ошибка со сложной фабрики с Factory Girl Rails на Rails 5
FactoryGirl.define do
conta_origem = FactoryGirl.create(:conta_pessoa_fisica)
conta_destino = ''
tipos = LogTransacao.tipos.keys
params = { conta_origem: conta_origem, conta_destino: conta_destino, tipo: tipos[0] }
codigo_transacional = LogTransacaoHelper::Gerador.codigo_alphanumerico(params)
factory :log_transacao_carga, class: LogTransacao do
codigo_transacional { codigo_transacional }
tipo { tipos[0] }
estornado { false }
valor { 0 }
conta_origem_id { conta_origem.id }
conta_origem_valor_antes_transacao { conta_origem.saldo }
end
end
conta.rb
FactoryGirl.define do
factory :conta do
nome { Faker::Name.name }
saldo { 0 }
status { 1 }
factory :conta_pessoa_fisica do
pessoa_type { 'PessoaFisica' }
pessoa_id { FactoryGirl.create(:pessoa_fisica).id }
end
end
end
Таким образом, я получаю следующее сообщение об ошибке :
find': Factory not registered: pessoa_fisica
Эта проблема не не происходит, когда я использую FactoryGirl.create внутри завода «: log_transacao_carga».
conta_origem_id {FactoryGirl.create (: conta_pessoa_fisica) .id}
Однако, если я делаю это, я не могу использовать тот же завод для заполнения conta_origem_valor_antes_transacao. Поэтому мне нужно создать этот завод перед фабрикой log_transacao_carga.
Не мог бы кто-нибудь помочь мне, пожалуйста?
Эй, @Dimitry_N, я буду проверять эту черту. Я не использовал его, потому что я всегда использовал вложенные фабрики, и он всегда работает до этого момента. Я не знаю черт, поэтому я попытаюсь использовать его. Спасибо за помощь. –