Activerecord Rails HABTM关于关系的附加数据

Activerecord Rails HABTM关于关系的附加数据,activerecord,Activerecord,我有一个课程表和一个用户表,一个课程可以有许多学生(用户),一个学生可以有许多课程,所以我将其存储在两个模型中,如下所示 class Lesson < ActiveRecord::Base has_and_belongs_to_many :students, class_name: 'User', foreign_key: 'lesson_id', uniq: true end class User < ActiveRecord::Base has_and_belongs_

我有一个课程表和一个用户表,一个课程可以有许多学生(用户),一个学生可以有许多课程,所以我将其存储在两个模型中,如下所示

class Lesson < ActiveRecord::Base
  has_and_belongs_to_many :students, class_name: 'User', foreign_key: 'lesson_id', uniq: true
end

class User < ActiveRecord::Base
  has_and_belongs_to_many :lessons_signed_up, class_name: 'Lesson', foreign_key: 'user_id', uniq: true
end
但是我还想存储课程的状态,如果它已经完成或没有完成,那么我会使用一个表

lesson_id | user_id | completed
        1 |       1 | true
        1 |       2 | false

如何在课程和用户之间的关系中添加额外属性?

您不应该使用habtm关系,但a有许多:通过。您可以在此处找到相关信息:

基本上,您可以将关系表制作成一个模型

lesson_id | user_id | completed
        1 |       1 | true
        1 |       2 | false