Почему контроллеры должны использовать notify_airbrake вместо Airbrake.notify

В вики Airbrake сказано использовать notify_airbrake в контроллерах вместо Airbrake.notify, но не объясняет почему. В чем выгода использования notify_airbrake в контроллерах, и почему он не должен использоваться в другом месте?

2 ответа

Решение

notify_airbrake это просто вспомогательный метод. Вы не должны использовать его (не стесняйтесь использовать Airbrake.notify). тем не мение notify_airbrake прикрепляет дополнительную информацию к уведомлению (например, текущий пользователь, сеанс, среда Rack и т. д.). С Airbrake.notify вы будете отправлять только то, что передаете в метод.

Это красота с открытым исходным кодом. Вы можете посмотреть на код и понять, как и почему что-то реализовано так, как оно есть.

Сказав это, посмотрите на код воздушного тормоза, в частности, controller_methods.rb файл ( https://github.com/airbrake/airbrake/blob/3033798f69d20706f13fc0e3d79572041e9c7205/lib/airbrake/rails/controller_methods.rb)

Ты это видишь notify_airbrake метод на самом деле вызывает вариант Airbrake.notify (Airbrake.notify_or_ignore) после того, как он автоматически извлекает некоторую дополнительную информацию, такую ​​как данные сеанса, URL запроса, параметры запроса и т. д., которые доступны только в контексте контроллера. Если они не сделали этого таким образом, нам придется извлечь эту информацию вручную в контроллере и передать ее. Это только для того, чтобы сделать нашу жизнь проще:)

Мои 2 цента.

Другие вопросы по тегам