两个如何使资源属于Rails上同一模型的两个对象?

时间:2017-01-16 21:48:09

标签: ruby-on-rails ruby-on-rails-4 activerecord relational-database

我有一个名为Notes的模型,我想要一个角色属性设置为“老师”的用户将注释添加到另一个具有“学生”角色的用户,但我希望笔记指向两者,教师创建了笔记和写下笔记的学生。

我发现的问题是用户是包含教师和学生的单一模型,那么如何向同一个Notes对象添加两个不同的用户引用呢?

这就是我通常创建引用rails g migration AddUserToNotes user:references的方法,但这只会添加一个引用。

感谢阅读。

1 个答案:

答案 0 :(得分:1)

以这种方式设置迁移和模型。

create_table :notes do |t|
  t.integer  "teacher_id"
  t.integer  "student_id"
end

class Note < ApplicationRecord
  belongs_to :student, class_name: 'User'
  belongs_to :teacher, class_name: 'User'
end

然后你有

Note.create(teacher_id: 1, student_id: 2)

依旧......