我有一个用户模型,带有一个admin boolean字段。然后我有一个管理员控制器,我想要CanCan On。
如何将CanCan添加到管理控制器,因为没有管理模型?
我试过了:
class AdminController < ApplicationController
load_and_authorize_resource :user
load_and_authorize_resource :admin, :through => :user
class Ability
include CanCan::Ability
def initialize
....
can :manage, Admin if current_user.admin == TRUE
....
但是错误“拒绝访问”
想法?感谢
答案 0 :(得分:0)
您确定可以在您的能力等级中访问'current_user'方法吗?我认为你不会。
对于我在使用CanCan时的记忆,您可以在您的Ability类中使用它:
def initialize(user)
user ||= User.new #guest user.
...
end
我期待用户成为当前用户。我想这应该有效。
您还可以查看此页面:CanCan wiki的https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllers。这不是完全相同的问题,但由于它涵盖了一个特殊情况(非RESTful-Controllers),它可能会给你一些关于如何做你想做的事情的提示。
干杯