【发布时间】:2012-10-05 14:07:12
【问题描述】:
我正在使用 rails 3.0.9、cancan 1.6.7 和设计 1.4.8
我使用两个设计模型(用户和管理员)进行不同的登录和注册过程
所以我想根据登录用户(资源)来划分能力,因为有超过 70 个模型和只有 10 个模型对两种类型的用户都是通用的(这里 50 多个模型和视图仅供管理员用户使用)
我想实现两个能力类(UserAbility 和 AdminAbility),并且设计辅助方法 current_user/current_admin 应该传递给 UserAbility/AdminAbility
例子:
在 ApplicationController.rb 文件中
def current_ability
if current_user
@current_ability = UserAbility.new(current_user)
elsif current_admin
@current_ability = AdminAbility.new(current_admin)
end
end
根据以上我的问题,
-
在cancan中是否可以使用多个能力类,如果可以,那么如何创建它,因为我尝试过
rails g cancan:user_ability但我得到了错误,因为 找不到生成器 cancan:user_ability。
如何为登录的用户/管理员选择合适的能力等级。
如果用户和管理员都访问了一个控制器,那么如何获取当前登录的用户/管理员的对象
还有其他解决办法吗?
请大家帮忙解决一下
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 devise cancan