Mongoid 查找器不工作?

发布于 2024-10-14 17:46:38 字数 344 浏览 2 评论 0原文

我已经设置了一个 Rails3+mongoid 应用程序,当我打开 Rails 控制台时,所有查找器似乎都不起作用 - http:// d.pr/FNzC

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

都返回:

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

我做错了什么吗?

I have set up a rails3+mongoid application and when I open the rails console, none of the finders seem to work - http://d.pr/FNzC

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

both return:

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

Am I doing something wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

空城缀染半城烟沙 2024-10-21 17:46:38

好吧,这就是 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 仅返回一个数组。

Okay, so this is part of what makes mongoid irritating for newcomers. People expect methods like User.all to actually return an array when it really just returns the Criteria object.

In order to provide the syntatic sugar of chainable methods and other fancy query mechanisms, Mongoid seems to use a lazy loading type thing.

You can do:

#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

It makes it difficult to quickly verify that things are working for newcomers from ActiveRecord where User.all just returns an array.

澉约 2024-10-21 17:46:38

试试这个:

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

Try this:

    User.all.first        
    User.find(:first, :conditions => {:first_name => 'John'})    
    User.where(:first_name => 'John').first
半岛未凉 2024-10-21 17:46:38

这工作完美..

 User.all.entries

this works perfectly..

 User.all.entries
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文