2011-05-14 20 views
0

我从数据库(MongoDB的)获取信息,然后将其转换为这样的一个数组:MongoDB的记录要阵列需要永远

@bs = coll.find("headers.from" => { "$regex" => email, "$options" => 'i' }, "date" => {"$gte" => initial_date, "$lte" => Time.now.utc}) 
     puts "a seguir ao fetch" 


     puts @bs 

     @bs = @bs.to_a 

这工作得很好,但有时,它只是进入一个无限周期(我相信),因为它崩溃了我的heroku应用程序。

响应(第一行是@bs的打印):

2011-05-14T17:05:46+00:00 app[web.1]: DBResponse(flags=, cursor_id=, start=) 

2011-05-14T17:06:16+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/api/v1/69399ead0ed4ded38e7a101f7c8faf/2011-2-1.json dyno=web.1 queue=0 wait=0ms service=0ms bytes=0 
2011-05-14T17:06:47+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=0ms bytes=0 
2011-05-14T17:07:10+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/api/v1/69399ead0ed4ded38e7a101f7c8faf/2011-2-1.json dyno=web.1 queue=0 wait=0ms service=0ms bytes=0 
2011-05-14T17:07:17+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/api/v1/69399ead0ed4ded38e7a101f7c8faf/2011-2-1.json dyno=web.1 queue=0 wait=0ms service=0ms bytes=0 
2011-05-14T17:07:51+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/api/v1/69399ead0ed4ded38e7a101f7c8faf/2011-2-1.json dyno=web.1 queue=0 wait=0ms service=0ms bytes=0 

我想知道为什么,因为我实在无法找出为什么所有的调试信息。 IT永远持有“.to_a”,并且服务器被阻止。

请帮忙。

谢谢

回答

0

从我看到的,没有理由RoR终止此循环。

如果可以,请尝试将其初始化为Kernel#Array。试试这个:

Array([1,2,3]) #=> [1, 2, 3] 
Array(123) #=> [123] 

相反的:你的意思是指

arg = arg.to_a 
+0

?对不起,不了解 – donald 2011-05-14 17:12:41

+0

.to_a从哪里来? – Lucius 2011-05-14 17:14:34

+0

我想这是一个RoR方法?转换为数组? – donald 2011-05-14 17:15:55