Mongoid finders无法正常工作?

Hut*_*tch 32 ruby-on-rails mongodb mongoid ruby-on-rails-3

我已经设置了rails3 + mongoid应用程序,当我打开rails控制台时,没有一个查找器似乎工作 - http://d.pr/FNzC

User.all
User.find(:all, :conditions => { first_name => "John" })
Run Code Online (Sandbox Code Playgroud)

两者都回归:

#<Mongoid::Criteria
  selector: {},
  options:  {}>
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

vox*_*uro 58

好吧,这也是让mongoid对新手产生刺激的一部分.人们期望像User.all这样的方法在它真正返回Criteria对象时实际返回一个数组.

为了提供可链接方法和其他花哨的查询机制的合成糖,Mongoid似乎使用了延迟加载类型的东西.

你可以做:

#array index
User.all[0]

#first/last
User.all.first

#each over things, print out all the users
User.all.each {|u| p u}

#edit, I forgot to include this, which is probably what you really want
#this spits out an array
User.all.to_a
Run Code Online (Sandbox Code Playgroud)

这使得很难从ActiveRecord快速验证事情是否适用于新手,其中User.all只返回一个数组.

  • 当然.虽然他们有文档,但它似乎并没有暗示指针实际上创建了必须迭代的标准对象.正如你所说,对于刚刚参加AR课程的新人来说,这有点刺激. (2认同)