Mongoid buscadores no funciona?


He configurado una aplicación rails3 + mongoid y cuando abro la consola rails, ninguno de los buscadores parece funcionar - http://d.pr/FNzC

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

Ambos regresan:

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

Estoy haciendo algo mal?

Author: Hutch, 2011-01-26

2 answers

Bien, así que esto es parte de lo que hace mongoid irritante para los recién llegados. La gente espera métodos como el Usuario.todo para devolver realmente una matriz cuando realmente solo devuelve el objeto Criteria.

Con el fin de proporcionar el azúcar sintático de los métodos encadenables y otros mecanismos de consulta de lujo, Mongoid parece utilizar un tipo de carga perezosa cosa.

Puedes hacer:

#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

Hace que sea difícil verificar rápidamente que las cosas están funcionando para los recién llegados de ActiveRecord donde el usuario.todo sólo devuelve una matriz.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-26 14:57:48

Prueba esto:

    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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-26 04:51:09