Модель пользователя: has_and_belongs_to_many: курс has_many: задания,: через =>: курсы
Модель курса: has_and_belongs_to: пользователь has_many: задания
Модель назначений: принадлежит_ к: курс
для этого требуется промежуточная таблица CoursesUsers с столбцами user_id и course_id и столбцом course_id в Assignment
, с этим вы можете делать что-то вроде current_user.courses current_user.assignments some_course.assignments some_course.users (при условии, что есть current_userили некоторый курс)
Подробнее об этом читайте здесь: Ассоциации активных записей Особенно о том, как настроить ассоциацию has_and_belongs_to_many