Если вы пользовались rescue_from, то наверное замечали, что по какой-то причине исключения иногда проскакивают необработанными. Причина оказалась весьма простая. Все исключения, которые возникли во вьюшках, всегда оборачиваются абстрактным ActionController::TemplateError и таким образом становятся невидимыми для всех ваших rescue_from хендлеров. Это не очень удобно, потому-что никогда нельзя сказать с точностью где некоторые исключения могут возникнуть, а где нет.

В общем сегодня как раз решал такую проблему в Бинстолке и решил сделать из своего решения маленький плугин. Плугин получился очень простой, всего пару строчек кода, зато работает как надо. Теперь все исключения, не важно где они выпрыгнули — во вьюшках или контроллерах — будут прекрасно обрабатываться вашими rescue_from хендлерами.

Читайте ридми на гитхабе и пользуйтесь на здоровье:

http://github.com/iSabanin/rescue_from_templates_exceptions/tree/master

P.S. — если вы считаете что этот плугин должен быть частью Rails Core, пишите в комментариях своё мнение.

2 комментария:

  1. zed_0xff:

    считаю что должен.

  2. xgetc25:

    нужен, для единообразия и избежания замешательства

Извините, но комментарии для этой статьи уже закрыты.