我尝试使用设计,cancancan和rolify创建登录系统。设计部分正在运作。我最近添加了cancancan和rolify,我试图测试它们是否正常工作。
我的cancancan能力档案:
class Ability
include CanCan::Ability
def initialize(user)
if user.has_role? :admin
can [:index], Page
else
can [:index,:lecture]
end
end
end
我有一个正常工作的根页root to: "pages#index"
。如果我在页面控制器顶部添加load_and_authorize_resource
,如
class PagesController < ApplicationController
load_and_authorize_resource
def index
end
def lecture
end
end
我试图访问它时回来了:
NameError in PagesController#index
由以下行生成:
names.inject(Object) do |constant, name|
if constant == Object
* constant.const_get(name)
else
candidate = constant.const_get(name)
next candidate if constant.const_defined?(name, false)
*是给出错误的行。我还在rolify文档中看到,我必须将resourcify
添加到要使用它的文件中。但是如果我尝试添加它,我会收到错误undefined method resourcify
。我怎么解决这个问题?
答案 0 :(得分:0)
检查以下内容:
<强>的Gemfile:强>
gem 'load_and_authorize_resource'
# bundle install after
<强>的ApplicationController:强>
class ApplicationController < ActionController::Base
include LoadAndAuthorizeResource
end
<强> PagesController 强>
class PagesController < ApplicationController
load_and_authorize_resource
....