Mongoid finders nie działa?

Skonfigurowałem aplikację rails3 + mongoid i po otwarciu konsoli rails żaden z finderów nie działa - http://d.pr/FNzC

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

Both return:

#<Mongoid::Criteria
  selector: {},
  options:  {}>
Czy robię coś nie tak?
Author: Hutch, 2011-01-26

2 answers

To część tego, co sprawia, że mongoid irytuje nowych. Ludzie oczekują metod takich jak User.wszystko, aby rzeczywiście zwrócić tablicę, gdy tak naprawdę zwraca obiekt Criteria.

Aby zapewnić syntaktyczny cukier metod łańcuchowych i innych fantazyjnych mechanizmów zapytań, Mongoid wydaje się używać leniwego typu ładowania.

Możesz zrobić:

#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

Utrudnia szybkie sprawdzenie, czy rzeczy działają dla nowych użytkowników z ActiveRecord gdzie użytkownik.wszystkie po prostu zwraca tablicę.

 58
Author: voxobscuro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-26 14:57:48

Spróbuj tego:

    User.all.first        
    User.find(:first, :conditions => {:first_name => 'John'})    
    User.where(:first_name => 'John').first
 1
Author: kriysna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-26 04:51:09