MongoID docs似乎非常清楚我应该能够运行它并使其工作:
Band.find_by(name: "Photek")
但至少在MongoID 2.4.11中,这给了我一个NoMethodError
。
另一方面,这有效:
Band.find(name: "Photek")
将find_by
更改为find
很容易,但我很困惑发生了什么。这是我的宝石版本落后于文档的情况,还是什么?
答案 0 :(得分:16)
Mongoid文档现在默认显示版本3(它是RC)。您想查看Mongoid 2的文档here。
在find
vs find_by
上,这是来自upgrade guide for Mongoid 2 - > 3:
Model.find和model.relation.find现在只需要一个或多个id。 Model.first,Model.last也不再接受参数。对于这些使用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")