2016-12-06 11 views
0

実行しましたgem install mixpanel-ruby また、gemfileにmixpanel-rubyを追加しました。mixed_pa​​nelを使い始めるには?

次に何をするのか混乱していますか?

初期化子/ 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にまたはユーザーモデルでは上記のコードを置くかはわかりません。

私がヒーローに変更をプッシュしようとすると、エラーが発生します:ActiveRecord::RecordNotFound: Couldn't find User with 'id'=id

各ユーザーの動作をトラッキングできるようにしたいと考えています。

REFERENCE:https://mixpanel.com/help/reference/ruby

答えて

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 
+0

ありがとうございます。さて、あなたが言ったようにしました。申し訳ありませんが、私は 'require 'mixpanel-ruby'をどこに置くべきか私の質問で尋ねることを忘れました。 '$ tracker = Mixpanel :: Tracker.new(ENV ['YOUR_MIXPANEL_TOKEN'])'でイニシャライザに書き込むべきですか? –

+0

はいイニシャライザに入れます – Thorin

+0

次に 'user = current_user.id'を設定しました –

0

一般的な考え方は、ユーザーがいくつかactoionを実行するとき、あなたはそれを追跡することです。 正しい方法はありません。 JSライブラリを使用している場合は、コードをビューレイヤーに配置します。

ですが、サーバー側で行っているので、コードを配置する論理的な場所はコントローラ内にあります。

例: ユーザーが投稿を好きなときは、適切なコントローラアクションにトラッキングコードを挿入します。ユーザーIDを渡すためのユーザーオブジェクトと、mixpanelと共有したいその他の詳細が必要です。

明らかに、コントローラがトラッキングコードを配置する唯一の場所であるとは言いません。場合によっては、タスクランナー、キューを使用してバックグラウンドで委任します。

+0

ありがとうございます。それは私に究極の目標についてのより明確なアイデアを与えましたが、ミックスパネルを統合するためにエラーを修正する方法はわかりません。 –