Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 无法在延迟作业中点击mixpanel?_Ruby On Rails_Ruby On Rails 3_Delayed Job_Mixpanel - Fatal编程技术网

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:in
clear\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:in
new'\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:in
invoke_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:in
timeout'\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:in
realtime'\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:in
reserve_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:in
times'\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:in
start'\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:in
start'\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:in
start'\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/task
execute'\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:in
execute'\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:in
synchronize'\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:in
invoke'\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:in
top\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:in
top\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:in
top\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: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: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