Как настроить ассоциации моделей в Rails - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь создать ассоциации для трех моделей в моем приложении Rails.В приложении Пользователь может получить доступ к курсам, в которых есть видео.Как бы я смоделировал это?

Это то, что у меня сейчас есть:

class User < ApplicationRecord
 has_many :courses
 has_many :videos, through: :courses
end

class Course < ApplicationRecord
 belongs_to :user
 has_many :videos
end

class Video < ApplicationRecord
 belongs_to :course
 belongs_to :user
end

Это правильный способ смоделировать эти ассоциации для того, чего я хочу добиться от приложения?

1 Ответ

0 голосов
/ 12 марта 2019

Обычно это выглядит примерно так:

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

(Предполагая, конечно, что вы создали каждую из приведенных выше переменных)и у вас есть связанные записи.)

...