2011-07-07 21 views
17

Dzięki regularnej konfiguracji ActiveRecord/SQL w Railsach, w konsoli, gdy wykonuję polecenia *.where, *.all itd., Otrzymuję z powrotem rzeczywistą tablicę elementów rekordów. Jednak po przejściu na Mongoida otrzymuję kryteria. Jak uzyskać rzeczywiste wyniki?Uzyskiwanie rzeczywistej tablicy wyników przy użyciu Mongoid

To co mam teraz ...

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

Odpowiedz

25

Podczas kwerendy model w Mongoid, to zwraca obiekt kryteriów (jak już stwierdzono), faktycznie nie uruchomić kwerendę aż żądasz danych z kryteriów.

Wszystko, co musisz zrobić, to iteracyjne nad wynikami, używając each lub map lub którąkolwiek z metod tablicy, tak:

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

Alternatywnie, jeśli chcesz tylko tablicę, można po prostu zadzwonić to_a o kryteriach:

App.all.to_a 
17

App.all.entries działa również.

+0

działa, ale metoda "wpisów" nie jest wyświetlana w jego programie rdoc. –

Powiązane problemy