2013-11-20 1 views
0

Я выполнил настраиваемую обработку ошибок, и использовать эту линию, чтобы спасти от ошибок:Исключения «rescue_from Exception» для канкана :: AccessDenied

rescue_from Exception, 
    :with => :render_error 

Однако, это также спасение от Канкана :: AccessDenied, как могу ли я сделать исключение из этого правила для спасения «CanCan :: AccessDenied» и отправить в корневой путь и спасти все с помощью настраиваемого метода: render error?

ответ

0

Цитирование непосредственно из the source,

Обработчики унаследованы. Они просматриваются справа налево, от донизу и вверх по иерархии. Обработчик первого класса , для которого true.is_a? (Klass) имеет значение true, - это тот, который был вызван, если любой.

Таким образом, вы можете просто сделать это:

rescue_from CanCan::AccessDenied, :with => :your_custom_handler 
rescue_from Exception, :with => :render_error 

Помните, что порядок rescue_from заклятий имеет важное значение.

+0

Порядок, к сожалению, не имеет значения –

+0

Пожалуйста, посмотрите здесь: http://stackoverflow.com/questions/20094078/custom-error-handling-and-cancan –

Смежные вопросы