2011-07-07 7 views
17

Con una configuración regular de ActiveRecord/SQL en Rails, en la consola cuando ejecuto los comandos *.where, *.all etc., recupero la matriz real de elementos de registro. Sin embargo, después de cambiar a Mongoid, en su lugar, recupero un criterio. ¿Cómo obtengo los resultados reales?Obtener una matriz real de resultados usando Mongoid

Esto es lo que me pasa ahora ...

ruby-1.9.2-p180 :001 > App.all 
=> #<Mongoid::Criteria 
    selector: {}, 
    options: {}, 
    class: App, 
    embedded: false> 

Respuesta

25

Cuando se consulta un modelo en Mongoid, devuelve un objeto de criterios (como se ha indicado), que en realidad no ejecutar la consulta hasta solicita datos de los criterios.

Todo lo que necesita hacer es iterar sobre los resultados, utilizando each o map o cualquiera de los métodos de arreglos, así:

App.all.each do |app| 
    puts app.name 
end 

otra parte, si lo que desea es la matriz, sólo puede llamar a to_a en los criterios:

App.all.to_a 
17

App.all.entries funciona tan bien.

+0

funciona pero el método 'entradas' no se muestra en su rdoc. –

Cuestiones relacionadas