我是铁杆新手。我正在使用CanCanCan(v1.10)和rails(v4.2)。 当我把'#34; authorize_resource"在ApplicationController中,我无法访问我的主页。
applcation控制器中的示例代码:
class ApplicationController < ActionController::Base
include CanCan::ControllerAdditions
authorize_resource
protect_from_forgery with: :exception
before_action :set_locale
rescue_from CanCan::AccessDenied do |exception|
flash[:danger] = t :cancancan_access_denied_text
redirect_to root_url
end
end
它向我显示以下错误:
NameError in StaticPagesController#home
答案 0 :(得分:0)
您不应该使用authorize_resource
,因为它会尝试从控制器名称中猜测模型名称,但您的应用中没有StaticPage
模型。相反,您应该在每个操作的开头调用authorize!
,如下所示:
def home
authorize!
...
end
因此,您需要从authorize_resource
中删除ApplicationController
,并仅在具有关联模型的控制器中使用它。没有模型的控制器应该在操作中使用authorize!
。