0

我从数据库(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”并且服务器被阻止。

请帮忙。

谢谢

4

1 回答 1

0

据我所知,RoR 没有理由终止这个循环。

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

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

代替:

arg = arg.to_a
于 2011-05-14T17:12:10.707 回答