Почему контроллеры должны использовать 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 цента.