2011-01-26 12 views
32

私はrails3 + mongoidアプリケーションを設定していると私はレールコンソールを開いたときに、ファインダーのどれも動作するようには思えない - http://d.pr/FNzCモンゴイロファインダーは機能しませんか?

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

両方のリターンを:

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

私が何か間違ったことをしています?

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

答えて

58

わかりましたので、これは新規参入のためmongoidに刺激を作るものの一部です:

+2

間違いなく。彼らはドキュメンテーションを持っていますが、ポインタが実際に反復処理する必要がある基準オブジェクトを作成したことを示唆していないようです。あなたが言ったように、ARクラスに使用された新規参入者には少し刺激を与えます。 – Hutch

+0

'.to_a'を使用しているときに接続エラーが発生した場合はどうなりますか? – Gcap

1

これを試してみてください。人々は、本当にただCriteriaオブジェクトを返すだけで、実際に配列を返すためにUser.allのようなメソッドを期待しています。

連鎖可能なメソッドと他のファンシーなクエリメカニズムの構文的な砂糖を提供するために、モンゴイドはレイジーローディング型のものを使用しているようです。

あなたは行うことができます:それはそれは難しいすぐに物事がUser.allだけの配列を返すのActiveRecordからの新参者のために働いていることを確認することができます

#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では動作しません。 –

+0

User.where mongoidのために働かない – harshit

関連する問題