如何在Rails中设置模型关联

问题描述 投票:0回答:1

我正在尝试在我的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

这是为我希望应用程序能够实现的内容建模这些关联的正确方法吗?

ruby-on-rails activerecord rails-activerecord rails-models
1个回答
0
投票

通常情况下,这看起来像:

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

(当然,假设您已经实例化了上述每个变量并且您有相关的记录。)

© www.soinside.com 2019 - 2024. All rights reserved.