我有学生,教师和大学模型。一位教师拥有大学,一名学生拥有一所大学。
目前没有教师或学生模型,只有单个模型用户。这样,用户和大学之间会有什么关系?什么是正确的架构?
答案 0 :(得分:2)
首先,你很难与协会混淆。 university has_many teachers
没有
Teacher has_many Universities
,也不是 Student has_one University
,它是 student belongs_to university
。
您只给出一个模型 User
,而不是两个模型(老师和学生),应该像这样给出
class University < ActiveRecord::Base
has_many :teachers, :class_name => "User"
has_many :students, :class_name => "User"
end
class User < ActiveRecord::Base
belongs_to :university
end
我建议您在进一步了解之前阅读这些Guides。
希望它有所帮助!
<强>更新强>
那么,在这一点上,你可以这样做
class University < ActiveRecord::Base
belongs_to :teacher, :class_name => "User",:foreign_key => 'user_id'
has_many :students, :class_name => "User"
end
class User < ActiveRecord::Base
has_many :universities
end
答案 1 :(得分:-1)
我相信你正在寻找一种叫做单表继承的东西。看看这篇文章: http://www.alexreisner.com/code/single-table-inheritance-in-rails