2011-01-26 26 views
32

Bir raylar 3. + mongoid uygulamasını kurdunuz ve raylar konsolunu açtığınızda bulucular hiçbiri çalışmıyor gibi görünüyor - http://d.pr/FNzCMongoid bulucular çalışmıyor mu?

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

hem dönüşü: Yanlış bir şey yapıyor muyum

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

?

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

cevap

58

Tamam, bu yeni gelenler için mongoid rahatsız edici kılan bir parçasıdır:

+2

için kesinlikle çalışmıyor. Belgelere sahip olsalar bile, işaretçilerin aslında üzerinde yinelemeniz gereken ölçüt nesneleri oluşturduğunu öne sürmüyordu. Dediğiniz gibi, AR sınıflarına yeni gelenler için hafif tahriş edici. – Hutch

+0

'.to_a' kullanırken bir bağlantı hatası alırsanız ne olur? – Gcap

1

bu deneyin. Kullanıcılar, User.all gibi yöntemlerin gerçekten bir dizi nesnesini gerçekten döndürdüğü zaman bir dizi döndürmesini beklerler. Zincirli yöntemler ve diğer fantezi sorgu mekanizmalarının sintatik şekerini sağlamak için Mongoid'in tembel yükleme tipi bir şey olduğu görülmektedir.

Sen yapabilirsiniz: O zor hızla şeyler User.all sadece bir dizi döndürür ActiveRecord gelenlerin de çalıştığını doğrulamak için yapar

#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 

.

+1

MongoID için çalışmıyor. –

+0

User.where, mongoid – harshit