我正在为课程表建模,该课程属于用户,课程的教师和创建者,而且,课程可以包含许多学生,也是用户。
所以它会是这样的
class Lesson < ActiveRecord::Base
belongs_to :user
has_many :users
end
我想致电第一位用户老师,以及用户学生的用户,我已阅读http://guides.rubyonrails.org/association_basics.html处的文档,但我可以找不到我想要的东西。
答案 0 :(得分:4)
这应该有你想要的:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to
我想你想要class_name
选项:
class Lesson < ActiveRecord::Base
belongs_to :teacher, class_name: "User"
has_many :students, class_name: "User"
end
答案 1 :(得分:0)
在您当前的代码中,所有用户都可以成为课程的“所有者”(教师),而您应该有两个额外的“学生”和“老师”课程与“用户”课程的关系为1:1
这样会更合适:
class Teacher < ActiveRecord::Base
has_one :user
end
class Student < ActiveRecord::Base
has_one :user
end
class Lesson < ActiveRecord::Base
belongs_to :teacher
has_many :students
end