在 Rails 通知中,我订阅了“process_action.action_controller”,并且想向有效负载添加更多属性。我怎样才能做到这一点?
我尝试过使用append_info_to_payload,但这似乎没有任何作用。
module AppendExceptionPayload
module ControllerRuntime
extend ActiveSupport::Concern
protected
def append_info_to_payload(payload)
super
payload[:happy] = "HAPPY"
end
end
end
订阅和上面的代码位于 Rails 引擎中,因此这是我调用添加它的地方:
require 'append_exception_payload'
module Instrument
class Engine < ::Rails::Engine
ActiveSupport.on_load :action_controller do
include AppendExceptionPayload::ControllerRuntime
end
end
end
悬赏后,我自己找到了解决方案。 Rails 非常干净地处理了这个问题。
基本上,append_info_to_payload
方法正是为此而设计的。
因此,为了包含会话信息和登录用户信息,我将其添加到我的application_controller.rb
:
def append_info_to_payload(payload)
super
payload[:session] = request.session_options[:id] rescue ""
payload[:user_id] = session[:user_id] rescue "unknown"
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)