выглядит хорошо для меня. Удаление validates_presence_of :course
может также облегчить вам задачу, так как это будет мешать, а не добавлять много.
Когда вы создаете курс, делайте это так:
Course.create course_codes: [CourseCode.new(...), CourseCode.new(...)]
ActiveRecord все выяснит.