我跑了gem install mixpanel-ruby
我还在gemfile中添加了mixpanel-ruby
。
我对下一步做什么感到困惑?
初始化/ mixed_panel.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
。
我希望能够跟踪每个用户的行为。
答案 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在后台委托它。