在Ability.rb
:
def initialize(user)
user ||= User.new
if user.role? :Agent
can :manage, ServiceRequest
elsif user.role? :Punching_team
can :manage, SrDocument
end
在service_request_controller
:
load_and_authorize_resource
在sr_documents_controller
:
load_and_authorize_resource
在application_controller
:
rescue_from CanCan::AccessDenied do |exception|
redirect_to root_url, :alert => exception.message
end
在路线中:
devise_scope :user do
root to: "devise/sessions#new"
end
在日志中:
Redirected to http://localhost:3000/
Filter chain halted as :require_no_authentication rendered or redirected
我在我的应用程序中使用cancan
gem。我想以这样一种方式设置授权:如果用户是一个代理'然后,他/她应该访问ServiceRequest
模型,并使用' Punching_team'然后他/她应该访问SrDocument
模型。但是当我使用代理登录时,获得一个无限循环。它给我一些错误,例如`过滤链停止为:require_no_authentication呈现或重定向。请帮助我。< / p>