1

我正在阅读 CanCan 文档,我发现可以授予细粒度的资源级别限制/授权。我的问题稍微容易一些。我只需要阻止不是特定用户类别的任何人访问 URL。例如,假设我的/adminRails 应用程序上有一个 URL。我只希望那些有admin角色的用户能够去那里并将那些没有到主页的用户重定向到主页,CanCan 是否也能够处理这种类型的粒度?

4

1 回答 1

0

是的,这不仅可能是 CanCan 的工作。

也许您还没有详细阅读文档。实际上 CanCan 在控制器级别上工作。它依赖于before_filter authorize!ability班级发送消息,然后以干净有序的方式处理授权。

至于如何处理rejections,可以在ApplicationController中解救,从exceptionsCanCan给你带来的来看

rescue_from CanCan::AccessDenied do |exception|
  # Not sure the exact message but the default should be something
  # like "you need blah blah to read admin"
  if expection.message.match /admin/
    redirect_to some_path
  end
end
于 2013-09-09T16:35:58.717 回答