🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

Как Hoptoad помогает на тестовом сервере

March 26, 2010, revised June 5, 2010 in Ruby on Rails

Итак, Hoptoad – это такая продвинутая штука для записывания исключений в Rails-приложениях. Его использование выливается в то, что каждое новое исключение логируется, а также при желании отправляется тебе на почту. Удобно.

Но речь не об этом, а о том, что Hoptoad можно использовать на отладочном сервере (назовем его staging) для упрощения работы тестера. Для этого нужно настроить его так, чтобы он ошибку и показывал, и отправлял в Hoptoad.

По умолчанию Hoptoad логирует ошибки только тогда, когда не показывает (consider_all_requests_local = false). Самый простой способ это изменить – переопределить метод в ApplicationController:

#consider_all_requests_local должен быть true
class ApplicationController < ActionController::Base
  def rescue_action_locally(exception)
    if Rails.env == "staging" # or something else
      unless hoptoad_ignore_user_agent?
        HoptoadNotifier.notify_or_ignore(exception, hoptoad_request_data)
      end
      rescue_action_locally_with_hoptoad(exception)
    end
    super(exception)
  end
end

Результатом этого будет то, что ошибки с staging будут сыпаться в hoptoad и можно будет вместо неудобных скриншотов передавать ссылки на hoptoad (где также видно, сколько раз встречалась ошибка, когда последний раз и т.п.)

Чего не хватает? Ссылки на Hoptoad прямо со страницы ошибки, конечно!

UPD: Чтоб появились ссылки, нужно стянуть с гитхаба патченный файл vendor/plugins/hoptoad_notifier/lib/templates/rescue.erb и подложить в проект.

Теперь каждое сообщение об ошибке на staging будет сопровождаться вот такой вот красной ссылкой прямо на ошибку:

 title=

Buy me a coffee Понравился пост? Купи мне кофе