MongoID find或find_by

时间:2012-07-10 20:34:17

标签: ruby mongodb mongoid

MongoID docs似乎非常清楚我应该能够运行它并使其工作:

Band.find_by(name: "Photek")

但至少在MongoID 2.4.11中,这给了我一个NoMethodError

另一方面,这有效:

Band.find(name: "Photek")

find_by更改为find很容易,但我很困惑发生了什么。这是我的宝石版本落后于文档的情况,还是什么?

1 个答案:

答案 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")