我正在使用FactoryGirl4.8.0,RSpec3.5.0,Rails5.0.2和Ruby2.4.1。
我写了这样的规范:
foo_languages_translators.rb
FactoryGirl.define do
factory :foo_languages_translator, class: 'Foo::LanguagesTranslator' do
translator nil
language nil
end
end
foo_languages_translator_spec.rb
require 'rails_helper'
RSpec.describe JobOfferTranslationLanguagable, type: :model do
describe '#hoge' do
let!(:foo_languages_translator) do
create(
:foo_languages_translator,
translator_id: 1,
foo_language_id: 1
)
end
... ...
end
end
然后我收到了错误:
NameError:
uninitialized constant Foo::LanguagesTranslator::FooLanguage
在
create(
:foo_languages_translator,
部分。
我已经尝试了很多事情要解决它,但我不知道出了什么问题。 如果您对此问题有任何提示,我将不胜感激。
答案 0 :(得分:0)
试试这个:
let!(:foo_languages_translator) do
FactoryGirl.create(
:foo_languages_translator,
translator_id: 1,
foo_language_id: 1
)
end
答案 1 :(得分:0)
好吧,而不是
let!(:foo_languages_translator) do
create(
:foo_languages_translator,
translator_id: 1,
foo_language_id: 1
)
end
尝试使用以下属性创建对象
let!(:foo_languages_translator) do
create(
:foo_languages_translator,
translator_id: 1,
language_id: 1
)
end
请注意,我没有使用language_id
代替foo_languag_id
。
在您的工厂中,您使用了关联language
而不是foo_language
。
如果没有解决您的问题,请告诉我