Обычно это выглядит примерно так:
class UserCourse < ApplicationRecord
belongs_to :user
belongs_to :course
end
class User < ApplicationRecord
has_many :user_courses
has_many :courses, through: :user_courses
has_many :videos, through: :courses
end
class Course < ApplicationRecord
has_many :user_courses
has_many :users, through: :user_courses
has_many :videos
end
class Video < ApplicationRecord
belongs_to :course
has_many :users, through: :course
end
Это должно позволить вам сделать:
@user.courses
@user.videos
@course.users
@course.videos
@video.course
@video.users
(Предполагая, конечно, что вы создали каждую из приведенных выше переменных)и у вас есть связанные записи.)