Ruby - 如何获取并循环从db返回的对象中的所有值?

时间:2012-06-27 15:35:17

标签: ruby-on-rails ruby

我有这一行:

@users = database['users'].find(:all).limit(10)

它返回此对象:

<Mongo::Cursor:0x8759a858 namespace='app-development.users' @selector=:all @cursor_id=>

我认为它拥有从数据库中获取的10个用户的集合。那是对的吗?我试着像这样迭代它:

   @users.each {
        |info|
      logger.debug ".....................single user: " + info.inspect
    }

但是我收到了这个错误:

BSON::InvalidDocument (BSON.serialize takes a Hash but got a Symbol):

非常感谢!

2 个答案:

答案 0 :(得分:2)

我对mongo并不熟悉,但试试这个:

@users.each do |info|
   logger.debug ".....................single user: #{info.inspect}"
end

#{}允许您在双引号字符串中评估ruby代码。

答案 1 :(得分:2)

如果要查看文字结果,请尝试将to_a附加到查询中。这应该会给你一个包含十个项目的数组。

@users = database['users'].find(:all).limit(10).to_a