CanCan - 如何设置无模式控制器?

时间:2011-04-06 22:20:02

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

我有一个用户模型,带有一个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
         ....

但是错误“拒绝访问”

想法?感谢

1 个答案:

答案 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),它可能会给你一些关于如何做你想做的事情的提示。

干杯