Ruby on rails 无法在延迟作业中点击mixpanel?
我正在用延迟的工作做一些背景工作。在两者之间,我想追踪一些事件。我用它来追踪事件。在控制器中,它工作得非常好。但不是在延迟的工作中 我正在使用的代码Ruby on rails 无法在延迟作业中点击mixpanel?,ruby-on-rails,ruby-on-rails-3,delayed-job,mixpanel,Ruby On Rails,Ruby On Rails 3,Delayed Job,Mixpanel,我正在用延迟的工作做一些背景工作。在两者之间,我想追踪一些事件。我用它来追踪事件。在控制器中,它工作得非常好。但不是在延迟的工作中 我正在使用的代码 @original_message = Message.find(message_id) @mixpanel= Mixpanel::Tracker.new("43242637426346287482", message_id, true) @mixpanel.track_event("blank_body", {:reset_result =>
@original_message = Message.find(message_id)
@mixpanel= Mixpanel::Tracker.new("43242637426346287482", message_id, true)
@mixpanel.track_event("blank_body", {:reset_result => "sucess" })
//message_id is a unique for every request.
我已经详细说明了
gem 'mixpanel' in gemfile
{undefined method `[]=' for 45:Fixnum
/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/mixpanel-0.9.0/lib/mixpanel/tracker.rb:38:inclear\u queue'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/mixpanel-0.9.0/lib/mixpanel/tracker.rb:13:in
初始化'\n/Users/mohit/projects/projects/textada/lib/message\u作业。rb:109:innew'\n/Users/mohit/projects/textadda/lib/message\u job.rb:109:in
perform'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/backend/base.rb:87:ininvoke_job'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in
run'\n/Users/mohit/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:67:intimeout'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/worker.rb:120:in
run'\n/Users/mohit/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/benchmark.rb:308:inrealtime'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/worker.rb:119:in
run'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/worker.rb:177:inreserve_and_run_one_job'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed_job-2.1.4/lib/delayed/worker.rb:104:in
work\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed_job-2.1.4/lib/delayed/worker.rb:103:intimes'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/worker.rb:103:in
work\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/worker.rb:78:instart'\n/Users/mohit/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/benchmark.rb:308:in
realtime'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/delayed_job-2.1.4/lib/delayed/worker.rb:77:instart'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/worker.rb:74:in
loop'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/worker.rb:74:instart'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/delayed\u job-2.1.4/lib/delayed/tasks.rb:9\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/task.rb:205在
调用'\n/Users/mohit/.rvm/gems/gems/ruby-1.8.7-p334/rake-0.9.2/lib/rake:205/taskexecute'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/task.rb:200:in
each'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/task.rb:200:inexecute'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/task.rb:158:in
invoke_with_call_chain'\n/Users/mohit/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/monitor.rb:242:insynchronize'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/task.rb:151:in
invoke_with_call_chain'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/task.rb:144:ininvoke'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:112:in
invoke\u task'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:90:intop\u level'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:90:in
each'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:90:intop\u level'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:129:in
standard\u exception\u handling'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:84:intop\u level'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:62:in
run'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:129:instandard\u exception\u handling'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/lib/rake/application.rb:59:in
run'\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/gems/rake-0.9.2/bin:32\n/Users/mohit/.rvm/gems/ruby-1.8.7-p334/bin:19:in'load'\n/Users/mohit/rake/rake-19/
编辑
我使用标准get请求在后台进程中实现了mixpanel。但我仍在寻找解决方案,如何在后台进程中使用Mixpanel gem。注意:由于INITIALIZE方法不再使用ENV参数,此答案现在已于2012年10月15日过期
Mixpanel::Tracker.new
上的示例如下所示:
Mixpanel::Tracker.new("YOUR_MIXPANEL_API_TOKEN", request.env, true)
@mixpanel= Mixpanel::Tracker.new("43242637426346287482", {:REMOTE_ADDR => message_id}, true)
@mixpanel.track_event("blank_body", {:reset_result => "sucess" })
在控制器上下文中,request.env
是散列
在上面的代码中,作为第二个参数传入message\u id
,它看起来像一个整数。很抱歉,我无能为力,我对mixpanel gem一无所知,但这是你问题的根源
如果mixpanel API文档告诉您可以传递一个整数作为第二个参数,那么这是不正确的。以下是与您的错误相关的代码
将整数作为第二个参数传递给初始值设定项将不起作用,因为Fixnum
类没有哈希赋值([]=
)方法,这正是您得到的错误消息
如果文档告诉您这可能是一个整数,那么您可能应该针对mixpanel提交一个问题。您应该这样做:
Mixpanel::Tracker.new("YOUR_MIXPANEL_API_TOKEN", request.env, true)
@mixpanel= Mixpanel::Tracker.new("43242637426346287482", {:REMOTE_ADDR => message_id}, true)
@mixpanel.track_event("blank_body", {:reset_result => "sucess" })
gem希望第二个变量是请求环境,因此将通过这种方式获取ip地址,并将其发送到mixpanel.com。但我甚至不确定这是否真的需要,所以我认为即使是一个简单的
@mixpanel= Mixpanel::Tracker.new("43242637426346287482", {}, true)
@mixpanel.track_event("blank_body", {:reset_result => "sucess" })
应该有用
希望这有帮助。在通过
mixpanel::Tracker…
调用之前,您是否尝试过require'mixpanel'
明确要求它?@Seamus Abshere更新了后台流程,您没有访问request.env的权限,这应该只是一个唯一的co