我知道有许多优秀的授权宝石,如cancan,声明授权,cantango等等。我想知道是否可以将模型类用作角色本身?
例如让有两个资源导师和学生那么是否可以让导师和学生担任角色呢?我问这个是因为我对不同的资源有不同的身份验证页面,因为我的资源彼此完全不同,我不打算单个用户类进行身份验证。
如果我完全错误的话,请指导我,因为我不熟悉rails: - )。
答案 0 :(得分:3)
简短的回答是“是”。对于cancan,最终您要定义什么构成授权访问,您可以随心所欲地执行此操作。大多数自动部件都采用用户模型,但没有必要使用提供的帮助程序。您可以像往常一样在ability.rb文件中定义授权逻辑,但手动调用控制器中的authorize!
。
那就是说,为什么不让生活更简单并使用单一用户模型,但是让用户的角色依赖于上下文?然后,您将从已建立的auth工作流程中受益,并且可能还有一个更清晰的域模型。