为什么控制器应该使用 notify_airbrake 而不是 Airbrake.notify

Why should controllers use notify_airbrake over Airbrake.notify

Airbrake wiki中,它说在控制器中使用notify_airbrake而不是Airbrake.notify,但没有解释原因。在控制器中使用 notify_airbrake 有什么好处,为什么不应该在其他地方使用它?

notify_airbrake is just a helper method. You don't have to use it (feel free to use Airbrake.notify). However notify_airbrake attaches extra information 通知(如当前用户、会话、机架环境等)。使用 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 美分。