如何开始使用mixed_pa​​nel?

时间:2016-12-06 04:55:30

标签: ruby-on-rails ruby heroku tracking

我跑了gem install mixpanel-ruby 我还在gemfile中添加了mixpanel-ruby

我对下一步做什么感到困惑?

初始化/ mixed_pa​​nel.rb

require 'mixpanel-ruby'

tracker = Mixpanel::Tracker.new(ENV['YOUR_MIXPANEL_TOKEN'])

user = User.find([:id])

# Track an event on behalf of user "User1"
tracker.track(user.id, 'A Mixpanel User')

# Send an update to User1's profile
tracker.people.set(user.id, {
    '$name' => user.name,
    '$last_name' => user.last_name,
})

我不确定是否将上述代码放在初始化程序或application.rb中或用户模型中。

当我尝试将更改推送到heroku时,我收到错误:ActiveRecord::RecordNotFound: Couldn't find User with 'id'=id

我希望能够跟踪每个用户的行为。

参考: https://mixpanel.com/help/reference/ruby

2 个答案:

答案 0 :(得分:1)

I think you can do like: 
put `$tracker = Mixpanel::Tracker.new(ENV['YOUR_MIXPANEL_TOKEN'])` 
in initializers/mixed_panel.rb and on application controller you can put rest of your code with a after_filter and when current_user present or can put code on any action where you need to track and get find user there

def track_details
 # your code and use $tracker
end

答案 1 :(得分:0)

一般的想法是,当用户执行某些操作时,您会跟踪它。 没有一种正确的方法可以做到这一点。如果它完成了它们的JS库,你可以将代码放在视图层中。

但是由于您在服务器端执行此操作,因此放置代码的逻辑位置在控制器中。

Ex:  当用户喜欢帖子时,您将跟踪代码放在适当的控制器操作中。您需要用户对象传递用户ID,以及您希望与mixpanel共享的任何其他详细信息。

显然,我并不是说控制器是你放置跟踪代码的唯一地方,在某些情况下,你会使用Task Runner,Que在后台委托它。