2012-07-10 17 views
12

Die MongoID docs scheint ziemlich klar zu sein, dass ich in der Lage sein sollte, diese auszuführen und nutzen:MongoID finden oder find_by

Band.find_by(name: "Photek") 

aber zumindest mit MongoID 2.4.11 das gibt mir ein NoMethodError.

Diese auf der anderen Seite arbeitet:

Band.find(name: "Photek") 

Es ist leicht genug, find_by zu find zu ändern, aber ich bin verwirrt, was los ist. Ist dies ein Fall, in dem meine Edelsteinversion hinter den Dokumenten steht, oder was?

Antwort

15

Die Mongoid-Dokumente zeigen Ihnen jetzt standardmäßig Version 3 (es ist ein RC). Sie wollen here für Mongoid 2.

Auf find vs find_by, bei der Dokumentation zu sehen ist dies vom upgrade guide für Mongoid 2 -> 3:

Model.find und model.relation.find jetzt nur nimm eine einzelne oder mehrere IDs. Model.first, Model.last, nimmt auch keine Argumente mehr an. Verwenden Sie stattdessen Model.find_by.

IOW:

Mongoid 2:

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

Mongoid 3:

Band.find(some_id) 
Band.find(some_id, some_other_id) 
Band.find_by(name: "Billy Talent") 
+3

-1 für Billy Talent (lol). – user2398029