Mongoid finders无法正常工作?

时间:2011-01-26 02:21:35

标签: ruby-on-rails ruby-on-rails-3 mongodb mongoid

我已经设置了rails3 + mongoid应用程序,当我打开rails控制台时,找不到任何查找器 - http://d.pr/FNzC

User.all
User.find(:all, :conditions => { first_name => "John" })

都返回:

#<Mongoid::Criteria
  selector: {},
  options:  {}>

我做错了吗?

3 个答案:

答案 0 :(得分: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

很难快速验证ActiveRecord的新手是否正常工作,而User.all只返回一个数组。

答案 1 :(得分:1)

试试这个:

    User.all.first        
    User.find(:first, :conditions => {:first_name => 'John'})    
    User.where(:first_name => 'John').first

答案 2 :(得分:1)

这很好用..

 User.all.entries