我有一个名为Administrator的控制器。该控制器对其他模型有行动。当我尝试使用CanCan授权此操作时,我收到了此回复。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_r来自控制器的资源,但是当任何操作被调用时,CanCan每次都会将我重定向到登录页面。
非常感谢
是的,我试着用can:manage,:all得到相同的结果。谢谢 – jgiunta 2011-12-18 14:43:08