关于设计的基本信息

时间:2012-08-14 16:34:30

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 devise

我正在尝试使用设计构建一个应用程序,并且将有多个角色。

这样有用户/管理员。如果我正确理解文档的方式设计工作,你构建一个新的模型/控制器称为用户的一个角色和一个新的模型/控制器为管理员。他的相当简单,但这里有我的问题

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,我该如何删除此功能?

我是否还有办法停止会员或注册(又名管理员)

先谢谢。

1 个答案:

答案 0 :(得分:1)

我现在正在创建一个应用程序,它还有多个角色(管理员,学生,教师等)。您需要意识到Devise是一个身份验证解决方案,它会验证用户是否真实。对于基于角色的权限,您需要一个授权解决方案,该解决方案授权用户执行某些操作。 Devise支持管理员角色,但除此之外,您还需要一个授权解决方案。

Cancan是我为此建议的宝石。我在为我的应用设置时使用了this tutorial。还有一个你可能感兴趣的part 2 to the tutorial。它也不难设置(我大约8个月前就自己学习Rails)。