Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/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
Mysql 将rails升级到4.1后,轮班不工作。正在尝试从数组中删除第一项。不再让阵列在上使用shift_Mysql_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Mysql 将rails升级到4.1后,轮班不工作。正在尝试从数组中删除第一项。不再让阵列在上使用shift

Mysql 将rails升级到4.1后,轮班不工作。正在尝试从数组中删除第一项。不再让阵列在上使用shift,mysql,ruby-on-rails,ruby,activerecord,Mysql,Ruby On Rails,Ruby,Activerecord,我有一个rake任务,它在rails4.0中工作,但是现在我已经升级到4.1,它不再工作了。现在我打电话给值班人员时出错了 undefined method `shift' for #<CallBackRequest::ActiveRecord_AssociationRelation:0x007f9e5b9fb630> 我的理解是,Rails不再允许您调用活动记录关系上的方法,或者Rails在过去的某个时候不会生成数组,而是将活动记录关系保留到以后。无论是哪种方式,您都会认为在4.

我有一个rake任务,它在rails4.0中工作,但是现在我已经升级到4.1,它不再工作了。现在我打电话给值班人员时出错了

undefined method `shift' for #<CallBackRequest::ActiveRecord_AssociationRelation:0x007f9e5b9fb630>
我的理解是,Rails不再允许您调用活动记录关系上的方法,或者Rails在过去的某个时候不会生成数组,而是将活动记录关系保留到以后。无论是哪种方式,您都会认为在4.1中有一种方法可以实现这一点,它只需要弹出一些类似于
.all
的内容,或者从
.select.all.pulk.take
中选择记录的方法。我试了好几件事都没用。我还以为我是在用数组操作,就像我的
初始
瞳孔线中的所有
一样


旁白:一个月前我问过这个问题,这就是为什么我使用shift从数组中删除第一个,这样我就可以将所有其他的标记为重复项。

是的,在Rails>=4.0中,即使在您调用关系上的
all
之后,它也不会转换为数组对象。如果您确实需要“纯”数组,则必须手动执行,调用
以_a

就像在
学生线索=讲师。回拨\u请求。从\u到\u比尔(2周前,1周前)。全部到\u a
好的,似乎和我想的一样简单。@LpLrich你不需要在这里调用
全部
,顺便说一句。我以前曾尝试在
学生线索之前添加行
学生线索到\u a
,所以我假设我应该在Rails 4.0做的地方做这件事,也就是说在
上。所有的
是的,我只需要调用。所有的都在那里,因为我需要它成为一个数组。你是说换掉,全部换成
instructors.each do |instructor|
   print "#{instructor.instructor_name} Call Back Request Report \n"
   pupil_leads = instructor.call_back_requests.from_to_bill(2.weeks.ago, 1.week.ago).all
   print "Found #{pupil_leads.count} Call Back Requests for period 2 weeks ago until 1 week ago.\n\n"
   pupil_leads.group_by { |h| h[:telephone_number] }.values.select { |a| a.size > 1 }
   pupil_leads.shift
    if pupil_leads.length > 0
      print "Found #{pupil_leads.count} duplicate CBRs. Proceeding to mark as non billable and resolved..\n\n\n"
      pupil_leads.each do |dpl|
        print "updating this pupil lead #{dpl.inspect}"
        dpl.update_attributes(:billable => false, :resolved => true)
      end
   end
end