18

通过 Rails 中的常规 ActiveRecord/SQL 设置,当我在控制台中执行命令*.where等时*.all,我得到了实际的记录项数组。然而,在切换到 Mongoid 之后,我反而得到了一个标准。如何获得实际结果?

这就是我现在得到的...

ruby-1.9.2-p180 :001 > App.all
 => #<Mongoid::Criteria
  selector: {},
  options:  {},
  class:    App,
  embedded: false>
4

2 回答 2

25

当您在 Mongoid 中查询模型时,它会返回一个标准对象(如您所说),直到您从标准中请求数据,它才会真正运行查询。

您需要做的就是迭代结果,使用eachormap或任何数组方法,如下所示:

App.all.each do |app|
  puts app.name
end

或者,如果您只想要数组,您可以调用to_a标准:

App.all.to_a
于 2011-07-07T08:17:39.453 回答
19

App.all.entries也可以。

于 2011-08-29T09:33:00.310 回答