在Rails中使用常规ActiveRecord / SQL设置,在执行命令*.where
,*.all
等时在控制台中,我返回实际的记录项数组。但是,在切换到Mongoid之后,我改回了一个标准。我如何得到实际结果?
这就是我现在得到的......
ruby-1.9.2-p180 :001 > App.all
=> #<Mongoid::Criteria
selector: {},
options: {},
class: App,
embedded: false>
答案 0 :(得分:25)
当您在Mongoid中查询模型时,它会返回一个条件对象(如您所述),在您从条件请求数据之前,它实际上不会运行查询。
您需要做的就是使用each
或map
或任何数组方法迭代结果,如下所示:
App.all.each do |app|
puts app.name
end
或者,如果您只想要数组,则只需按标准调用to_a
:
App.all.to_a
答案 1 :(得分:17)
App.all.entries
也适用。