【问题标题】:Calling Mixpanel API only in production Rails environment仅在生产 Rails 环境中调用 Mixpanel API
【发布时间】:2011-02-28 18:02:11
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails environment


    【解决方案1】:

    你的想法是对的。虽然您可能想使用:

    Rails.env.production?
    

    相反。 (见Rails.env vs RAILS_ENV

    【讨论】:

      【解决方案2】:

      较老的问题,但这是我的方法。用在测试中更有用的东西替换 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
      

      【讨论】:

        【解决方案3】:

        【讨论】:

        • 没有理由记忆/缓存 Rails.env.production 的值?它只是在幕后比较字符串。
        • 你完全正确!感谢您的更正,我已经更新了答案。
        猜你喜欢
        • 1970-01-01
        • 2011-01-05
        • 1970-01-01
        • 1970-01-01
        • 2017-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        相关资源
        最近更新 更多