繁体   English   中英

Rails 5-属于但拥有has_many关联

[英]Rails 5 - belongs_to but has_many association

我当前正在尝试创建一个系统,允许特定用户创建可以由许多其他用户注册的课程记录。 我尝试了一些关联技术,例如has_and_belong_to_manyhas_many :through和其他设置数量,但一直无法正确完成。

基本上我需要的是以下内容:

  • 课程属于单个用户(由其创建)(foreign_id => admin_id)
  • 课程有许多注册用户(加入表?)
  • 用户创建了许多课程
  • 用户可以属于许多课程

如果您有任何想法将如何完成,我将非常感谢您的投入。

我将使用Course模型来表示课程信息,并使用user_id属性将其与创建课程的用户相关联。 我还将创建一个称为Enrollment的关联表/模型,它是UserCourse之间的关联。 然后,您可以执行以下操作:

#User.rb
has_many :courses
has_many :enrollments
has_many :enrolled_courses, through: :enrollments, source: :course

#Enrollment.rb
belongs_to :course
belongs_to :user

#Course.rb
belongs_to :user
has_many :enrollments
has_many :users, through: :enrollment

使用此配置,您可以调用course.user来接收创建课程的用户,但是您也可以调用course.users来接收注册课程的用户。 在相反的一侧,您可以调用user.enrolled_courses来接收用户正在注册的课程列表,或者可以调用user.courses来接收用户已创建的课程列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM