CanCan - доступ запрещен - способ заставить CanCan указать в журнале Почему? - PullRequest
7 голосов
/ 03 ноября 2010

Я работаю над реализацией CanCan. По какой-то причине CanCan продолжает давать мне Отказ в доступе, когда я пытаюсь получить конкретную информацию о разрешениях модели. И я не могу понять, почему.

Есть ли способ получить CanCan, чтобы быть конкретным, возможно, в журналах или в разработке о том, почему доступ запрещен? что-то вроде «Нет чтения» для модели XXX.

Это было бы полезно для отладки.

Спасибо

Ответы [ 3 ]

5 голосов
/ 03 ноября 2010

Вы можете добавить блок rescue_from в ApplicationController для обработки исключений CanCan и установить там свое собственное сообщение об ошибке. См. CanCan документы для подробного объяснения.

1 голос
/ 10 ноября 2015

Вы можете сделать:

# 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

1 голос
/ 03 ноября 2010

Вы можете добавить некоторые выходные данные в вашу модель способностей и проверить, что может или не может ваша способность потерпеть неудачу.

Или вы можете добавить сеанс отладчика в начале вашего класса способностей.

...