我正在使用the mixpanel gem申请。它充当中间件并动态地将代码插入到头部以进行任何操作。我希望能够针对特定操作将其关闭(例如,我们有一个发送电子邮件的操作,而我们宁愿不在那里使用代码)。有关如何实现这一目标的任何想法?
非常感谢。
答案 0 :(得分:1)
似乎mixpanel有updated他们的宝石
阻止中间件插入代码
注意:仅适用于设置Rack Middleware时 有时,您可能需要发送不希望中间件更改的HTML请求。在您的AJAX请求中包含标题“SKIP_MIXPANEL_MIDDLEWARE”以防止插入mixpanel代码。$.ajax("/path/to/api/endpoint", { headers: {"Skip-Mixpanel-Middleware": true}, // valid http headers don't allow underscores and get filtered by some webservers success: function(data) { // Process data here } }); //Alternatively, you can add this line of code to your controller to temporarily disable the middleware: Mixpanel::Middleware.skip_this_request
取自: https://github.com/zevarito/mixpanel#prevent-middleware-from-inserting-code
答案 1 :(得分:0)
在application_controller类中,向实例mixpanel添加方法。
before_filter :initialize_mixpanel def initialize_mixpanel @mixpanel = Mixpanel::Tracker.new("YOUR_MIXPANEL_API_TOKEN", request.env, true) end
由于它是由before_filter
初始化的,因此您可以在其他控制器中使用skip_before_filter
,以便跳过某些操作,或者除了特定操作之外的所有操作,例如:
class SomeController < ActionController::Base
skip_before_filter :initialize_mixpanel, :only => [ :create, :new ]
# or
skip_before_filter :initialize_mixpanel, :except => [ :update ]
end
答案 2 :(得分:0)
我们无法找到一种方法来做到这一点并最终在事后将其剥离(使用gsub)。如果其他人有更好的解决方案,我肯定会将你的标记为正确,我只想关闭这个问题。感谢