使用Devise in Rails组织管理员/教师/学生用户帐户的最佳方法是什么?

时间:2013-07-20 22:30:33

标签: ruby-on-rails devise cancan rolify

  • Admin =总控制。 CRUD教师和学生帐户。最小 字段集。
  • 老师=阅读/更新自己的帐户。读自己的学生 账户。更独特的领域。
  • 学生=阅读/更新自己的帐户。更多独特的领域。

身份验证 - 设计 授权 - CanCan,Rolify

我在Devise中有一个User模型,结合CanCan和Rolify来设置角色和能力。这可行,但由于下面的第一个要求,开始变得复杂。我不确定“角色”是区分这些帐户的最佳方式,因为它们具有非常不同的字段集和能力。

为三种用户类型设置不同的Devise模型会更好吗? (第二个要求很复杂。) 或者,最佳做法是将所有用户保留在一个模型中并分配角色和能力,就像我现在所做的那样?

要求:

  • 不同的用户类型将具有多个(必需的)字段 该用户类型(即学生有parent_name,教师没有等)
  • 我需要一个统一的登录表单并检测用户类型 登录凭据和基于此重定向的用户。

我在这里看到了几个关于实现这些方法的具体细节的答案,但我正在寻找关于哪种方法更适合我的应用的建议。我在Devise中投入太多了吗?我意识到这只是一个身份验证框架。我应该为个人属性设置单独的用户模型吗?

好像你无法分辨 - 我是新手,仍在尝试获取概念。

1 个答案:

答案 0 :(得分:0)

一个建议是使用Devise使事情尽可能简单,并通过User模型中的单个字符串字段管理角色。然后你只有一个字段来检查身份验证,你可以为教师和学生所需的其他属性制作另外两个独立的模型,因为它们很容易通过Rails'助手(belongs_to等)。