我最近一直在玩ActiveSupport::Notifications
,我无法弄清楚如何获取块中运行的方法的参数。让我举个例子。
您设置了以下乐器。
ActiveSupport::Notifications.instrument('render', extra: :information) do
render text: 'Foo'
end
您可以通过订阅活动来访问信息。
ActiveSupport::Notifications.subscribe('render') do |name, start, finish, id, payload|
name # => String, name of the event (such as 'render' from above)
start # => Time, when the instrumented block started execution
finish # => Time, when the instrumented block ended execution
id # => String, unique ID for this notification
payload # => Hash, the payload
end
查看documentation,我找不到任何可以提供渲染方法参数的内容 - {text: 'foo'}
我错过了什么?这可能吗?感谢。
答案 0 :(得分:0)
render text: 'Foo'
不是参数;这是一种将内容呈现给客户端的Rails方法。
ActiveSupport::Notificaitons.instrument("render", text: "foo")
是您将值“提交”到通知程序的方式。
ActiveSupport::Notifications.subscribe("render") do |name, start, finish, id, payload|
text = payload[:text]
end
是您在订阅者中引用它的方式。