16

MongoID のドキュメントは、これを実行して動作させることができるはずであることを明確に示しているようです。

Band.find_by(name: "Photek")

しかし、少なくともMongoID 2.4.11では、これによりNoMethodError.

一方、これは機能します:

Band.find(name: "Photek")

find_byに変更するのは簡単findですが、何が起こっているのか混乱しています。これは、私の gem バージョンがドキュメントの背後にある場合ですか、それとも何ですか?

4

1 に答える 1

18

Mongoid のドキュメントでは、デフォルトでバージョン 3 が表示されるようになりました (これは RC です)。Mongoid 2のドキュメントはこちらをご覧ください。

findvsでは、これfind_byはMongoid 2 -> 3のアップグレード ガイドからのものです。

Model.find と model.relation.find は、1 つまたは複数の ID のみを取るようになりました。Model.first、Model.last も引数を取りません。これらについては、代わりに Model.find_by を使用してください。

IOW:

モンゴイド 2:

Band.find(some_id)
Band.find(name: "Billy Talent")

モンゴイド 3:

Band.find(some_id)
Band.find(some_id, some_other_id)
Band.find_by(name: "Billy Talent")
于 2012-07-10T21:35:14.007 に答える