多个设计用户:多个模型还是继承?

时间:2016-09-18 02:28:09

标签: ruby-on-rails devise single-table-inheritance

在我使用Devise的Rails应用程序中,我计划制作多种类型的用户(学生,教师和管理员)。他们有许多共享属性,如用户名,电子邮件,密码等,但有一些差异。学生将能够与教师(可能是彼此)发布的内容进行互动,教师可以制作课程并发布内容并与学生互动,管理员可能会控制大多数内容(包括删除用户,内容等) 。)

我正在努力找出最好的方法来做到这一点,最好是头疼最少,因为我还是Rails的新手。我应该为每种类型的用户制作多个Devise模型,还是应该让多个模型继承自User(我认为称为单表继承?)我很乐意尝试任何一个,但我不确定哪个是最好的方式

1 个答案:

答案 0 :(得分:0)

如果您需要不同的授权(例如管理员和用户)级别,则可以使用Pundit

如果您具有相同授权的不同角色(例如同一上下文中的学生和教师),则使用继承和关注,可能会定义所有其他控制器可从中派生的基本控制器。< / p>