用户在我的模型关联中充当学生和教师

时间:2014-04-26 15:22:12

标签: ruby-on-rails database model associations

我有学生,教师和大学模型。一位教师拥有大学,一名学生拥有一所大学。

目前没有教师或学生模型,只有单个模型用户。这样,用户和大学之间会有什么关系?什么是正确的架构?

2 个答案:

答案 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