【发布时间】:2015-03-17 08:53:32
【问题描述】:
在我目前正在开发的大学 HR Web 应用程序中实施我的模型设计时,我需要建议/帮助。
首先,我的表格有这些模型及其字段:
Students
* different fields
Faculty
* different fields
Users
* username
* password_digest
我有 CRUD 的 Student 和 Faculty 对象,它们在自己的表中具有其独特的字段/属性。同时,我将这些对象视为使用该应用程序的用户类型。
我对如何正确建模它们感到困惑,尝试使用 ActiveRecord 的 STI 或多态技术。我希望应用程序做的就是识别正在登录的用户类型,然后显示或重定向到该类型用户的相应页面。同时参考其在Faculty 或Student 表中的相关记录。
假设我有这些条件,解决这个问题的最佳方法是什么:
用户可以是学生、教师或管理员。稍后我也可以将非教师成员添加/建模到应用程序中。
学生/教师可以选择拥有或不拥有关联的用户帐户。 (一些学生和教职员工不想使用该应用程序)
管理员用户可以访问应用程序的管理 (CRUD) 端。学生和教师只能处理他们自己的记录。
我可能错了,但我的赌注是多态并将引用放在用户模型中:
class User < ActiveRecord::Base
belongs_to :userable, polymorphic: true
end
class Student < ActiveRecord::Base
has_one :user, as: :userable
end
class Faculty < ActiveRecord::Base
has_one :user, as: :userable
end
P.S.:我不知道“可用”一词是否正确,如果有更好的命名方式,请纠正我。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 rails-activerecord polymorphic-associations sti