遭遇するたびに「ほあ?」となるのでメモ。
|
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名と一致しているから省略できていただけなんですね。