Ruby on rails CanCan-如何设置无模式控制器?
我有一个用户模型,带有一个管理布尔字段。然后我有一个管理员控制器,我想坎坎上 由于没有管理模型,如何将CanCan添加到管理控制器 我试过:Ruby on rails CanCan-如何设置无模式控制器?,ruby-on-rails,ruby-on-rails-3,devise,cancan,Ruby On Rails,Ruby On Rails 3,Devise,Cancan,我有一个用户模型,带有一个管理布尔字段。然后我有一个管理员控制器,我想坎坎上 由于没有管理模型,如何将CanCan添加到管理控制器 我试过: class AdminController < ApplicationController load_and_authorize_resource :user load_and_authorize_resource :admin, :through => :user class Ability include 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
....
class AdminController:user
班级能力
包括CanCan::能力
def初始化
....
can:manage,如果当前用户为Admin==TRUE,则为Admin
....
但“零访问被拒绝”的错误
想法?谢谢您确定在您的能力课程中有权访问“当前用户”方法吗?我想你不会的 我记得在使用CanCan时,您可以在您的能力课程中使用:
def initialize(user)
user ||= User.new #guest user.
...
end
我想用户应该是当前用户。我想这应该行得通
您还可以查看CanCan wiki的以下页面。这并不是完全相同的问题,但由于它涉及一个特殊情况(非RESTful控制器),它可能会为您提供一些关于如何做您想做的事情的提示
干杯对不起,
==TRUE
?TRUE
在你的应用程序中是常量吗?另外:对于load\u和\u authorize\u资源
来说,through
选项来自哪里?TRUE不是常量,它是布尔值,这是无效的吗?RE:through选项是CanCan no的一部分@真的,真的和真的都非常非常不同。