我有一个课程表,一个用户表,一个课程可以有很多学生(用户),一个学生可以有很多课程,所以我将它存储在两个模型中如下
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
如何为课程和用户之间的关系添加额外属性?
答案 0 :(得分:0)
你不应该使用habtm关系,而应该使用has_many:through。您可以在此处找到相关信息:http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association
基本上,您将关系表变为模型。