我正在尝试使用设计构建一个应用程序,并且将有多个角色。
这样有用户/管理员。如果我正确理解文档的方式设计工作,你构建一个新的模型/控制器称为用户的一个角色和一个新的模型/控制器为管理员。他的相当简单,但这里有我的问题
route.rb我有以下
devise_for :admins
devise_for :customers
resources :events
root :to => 'events#index'
然而,在控制器中我放置了
before_filter :authenticate_customer!
我也尝试按照
before_filter :authenticate_customer! || :authenticate_admin!
但如果我登录的是管理员,那么这两个技术仍会将我重定向到登录页面。我应该怎么做才能说话,除非我创建了两个不同的网站然后结果是没用的。
这里还有一些问题。当我进入编辑时它问我current_password,我该如何删除此功能?
我是否还有办法停止会员或注册(又名管理员)
先谢谢。
答案 0 :(得分:1)
我现在正在创建一个应用程序,它还有多个角色(管理员,学生,教师等)。您需要意识到Devise是一个身份验证解决方案,它会验证用户是否真实。对于基于角色的权限,您需要一个授权解决方案,该解决方案授权用户执行某些操作。 Devise支持管理员角色,但除此之外,您还需要一个授权解决方案。
Cancan是我为此建议的宝石。我在为我的应用设置时使用了this tutorial。还有一个你可能感兴趣的part 2 to the tutorial。它也不难设置(我大约8个月前就自己学习Rails)。