【问题标题】:Why should controllers use notify_airbrake over Airbrake.notify为什么控制器应该使用 notify_airbrake 而不是 Airbrake.notify
【发布时间】:2015-11-04 14:43:06
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails airbrake


    【解决方案1】:

    notify_airbrake 只是一个辅助方法。您不必使用它(请随意使用Airbrake.notify)。但是notify_airbrakeextra information 附加到通知中(如当前用户、会话、机架环境等)。使用Airbrake.notify,您只会将您传递给该方法的内容发送给该方法。

    【讨论】:

      【解决方案2】:

      这就是开源的美妙之处。您可以查看代码并弄清楚某些东西是如何以及为什么按照它的方式实现的。

      话虽如此,看看airbrake代码,特别是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 美分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-23
        • 2019-01-09
        • 2017-03-17
        • 2012-10-08
        • 2015-08-13
        • 2021-09-13
        • 1970-01-01
        相关资源
        最近更新 更多