使用Mongoid获取实际的结果数组

New*_*ewy 17 activemodel mongoid ruby-on-rails-3

随着Rails的一个普通的ActiveRecord/SQL设置在控制台当我执行命令*.where,*.all等我回来的记录项的实际阵列.但是,在切换到Mongoid之后,我改回了一个标准.我如何获得实际结果?

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

ruby-1.9.2-p180 :001 > App.all
 => #<Mongoid::Criteria
  selector: {},
  options:  {},
  class:    App,
  embedded: false>
Run Code Online (Sandbox Code Playgroud)

the*_*RON 25

当您在Mongoid中查询模型时,它返回一个条件对象(如您所述),在您从条件请求数据之前,它实际上不会运行查询.

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

App.all.each do |app|
  puts app.name
end
Run Code Online (Sandbox Code Playgroud)

或者,如果您只是想要阵列,您可以调用to_a标准:

App.all.to_a
Run Code Online (Sandbox Code Playgroud)


mra*_*ruz 18

App.all.entries 也有效.