【发布时间】:2011-12-17 18:43:10
【问题描述】:
我有一个名为 Administrator 的控制器。这个控制器对其他模型有动作。当我尝试使用 CanCan 授权此操作时,我收到此响应。
<h1>
NoMethodError
in AdministratorController#preproduct_delete
</h1>
<pre>undefined method `find' for Administrator:Class</pre>
控制器代码以:
开头class AdministratorController < ApplicationController
load_and_authorize_resource
before_filter :authenticate_user!
def users
authorize! :users, "Users List"
@users = User.all
end
end
能力模型有:
if user.admin? then :admin
can :users
end
authenticate_user! 方法:
# See ControllerAdditions#authorize! for documentation.
def authorize!(action, subject, *args)
message = nil
if args.last.kind_of?(Hash) && args.last.has_key?(:message)
message = args.pop[:message]
end
if cannot?(action, subject, *args)
message ||= unauthorized_message(action, subject)
raise AccessDenied.new(message, action, subject)
end
subject
end
我试图从控制器中删除 load_and_authorize_resource,但是当调用任何操作时,CanCan 每次都会将我重定向到登录页面。
非常感谢
【问题讨论】:
标签: ruby-on-rails cancan