ruby - MongoID find 或 find_by

标签 ruby mongodb mongoid

MongoID docs似乎很清楚我应该能够运行它并让它工作:

Band.find_by(name: "Photek")

但至少对于 MongoID 2.4.11,这给了我一个 NoMethodError

另一方面,这有效:

Band.find(name: "Photek")

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

最佳答案

Mongoid 文档现在默认显示版本 3(它是 RC)。您想查看文档 here对于 Mongoid 2。

findfind_by 上,这是来自 upgrade guide对于 Mongoid 2 -> 3:

Model.find and model.relation.find now only take a single or multiple ids. Model.first, Model.last also no longer take arguments. For these use Model.find_by instead.

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

关于ruby - MongoID find 或 find_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421496/

相关文章:

ruby - ruby 中的类方法语法

mongodb - Casbah MongoDB 仅更新某些字段

ruby-on-rails - Rails Mongoid 无法验证 - 失败并出现错误 13 : "not authorized for query on my_db.my_collection"

ruby-on-rails - 用 mongoid 重命名模型

ruby - Mongoid 3.1.4 调用 'has_key?' 时未定义方法 'Document.create'

Ruby 命名空间问题

ruby-on-rails - Ruby mod_passenger 进程超时

ruby-on-rails - 如何更改 Ruby on Rails 解析两位数年份输入的方式

mongodb - 从 mongodb 聚合中的字符串值提供排序顺序

node.js - SQL 'UNION ALL' 类似 MongoDB 中的实现