CanCan - 访问被拒绝 - 制作CanCan的方法在LOG中指定为什么?

时间:2010-11-03 16:25:04

标签: ruby-on-rails ruby-on-rails-3 cancan

我正在努力实施CanCan。出于某种原因,当我尝试获取有关模型权限的具体信息时,CanCan会一直拒绝访问Access。我无法弄清楚原因。

有没有办法让CanCan具体化,可能在日志或开发中关于为什么Access被拒绝?像XXX模型没有读取能力。

这对调试很有帮助。

由于

3 个答案:

答案 0 :(得分:5)

您可以在ApplicationController中添加rescue_from块来处理CanCan异常并在那里设置自定义错误消息。有关详细说明,请参阅CanCan docs

答案 1 :(得分:1)

您可以在您的能力模型中添加一些输出,并在您的能力失败后检查。

或者您可以在能力类的开头添加调试器会话。

答案 2 :(得分:1)

你可以这样做:

# in ApplicationController
rescue_from CanCan::AccessDenied do |exception|
  Rails.logger.debug "Access denied on #{exception.action} #{exception.subject.inspect}"
  # ...
end

有关该项目主页的更多信息:https://github.com/ryanb/cancan/wiki/Debugging-Abilities