【问题标题】:Rails 5 - belongs_to but has_many associationRails 5 - belongs_to 但 has_many 关联
【发布时间】:2018-02-22 15:52:04
【问题描述】:

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

基本上我只需要以下内容:

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

如果您知道如何实现这一点,我将非常感谢您的意见。

【问题讨论】:

    标签: ruby-on-rails associations


    【解决方案1】:

    我将使用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 接收用户创建的课程列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-11
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2011-04-21
      相关资源
      最近更新 更多