仅在生产Rails环境中调用Mixpanel API

时间:2011-02-28 18:02:12

标签: ruby-on-rails environment

我目前正在使用带有默认'mixpanel' gem的mixpanel进行分析,并在我的控制器中设置了一些调用。我希望这些调用只在生产环境中运行。每次通话都是这样做的最佳方式:

@mixpanel.track_event("Job Accepted", {:user=> current_user.id}) if RAILS_ENV == 'production'

似乎有点矫枉过正,但我​​很难想到更好的解决方案。任何帮助都会很棒!

3 个答案:

答案 0 :(得分:4)

你有正确的想法。虽然您可能想要使用:

Rails.env.production?

代替。 (见Rails.env vs RAILS_ENV

答案 1 :(得分:4)

老问题,但这是我的方法。用测试中更有用的东西替换Mixpanel的默认使用者(发送到他们的API)。在我们的例子中,我们只是退出。这是在一个初始化器,如mixpanel.rb。

if Rails.env.production?
  MIXPANEL = Mixpanel::Tracker.new(ENV['MIXPANEL_TOKEN'])
else
  MIXPANEL = Mixpanel::Tracker.new(ENV['MIXPANEL_TOKEN']) do |type, message|
     Rails.logger.debug("Mixpanel Request: #{type}, #{message}")
  end
end

答案 2 :(得分:1)