遭遇するたびに「ほあ?」となるのでメモ。
1 2 3 4 5 6 7 8 9 |
FactoryBot.define do factory :question do name '職業' after(:build) do |question| question.items << FactoryBot.build(:question_item_1) question.items << FactoryBot.build(:question_item_2) end end end |
1 2 3 4 5 6 7 8 9 |
FactoryBot.define do factory :question_item_1 do name '一般職' end factory :question_item_2 do name '総合職' end end |
このfactoryをFactoryBot.build(:question)
すると
NameError: uninitialized constant QuestionItem1
と言われてします。
原因はbuildされている側にclassの指定がないから。
1 2 3 4 5 6 7 8 9 |
FactoryBot.define do factory :question_item_1, :class => 'QuestionItem' do name '一般職' end factory :question_item_2, :class => 'QuestionItem' do name '総合職' end end |
ここでのfactory :question
はmodel名と一致しているから省略できていただけなんですね。