Rails HABTM关于关系的附加数据

时间:2012-12-21 13:49:07

标签: 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_to_many :lessons_signed_up, class_name: 'Lesson', foreign_key: 'user_id', uniq: true
end

对于那种关联,我有一张桌子

lesson_id | user_id
         1|       1 
         2|       1

但是我也想存储课程的状态,如果它已经完成,那么我会使用一个表

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

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

1 个答案:

答案 0 :(得分:0)

你不应该使用habtm关系,而应该使用has_many:through。您可以在此处找到相关信息:http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association

基本上,您将关系表变为模型。

相关问题