我刚刚发现.where
和.find_by
之间的细微差别显然.where
只返回我正在查找的对象的_id
而.find_by
}返回一个哈希。有人可以解释Rails 4和mongodb中两种方法的区别吗?
提前致谢
答案 0 :(得分:1)
请阅读documentation on the ActiveRecord Query Interface。
1从数据库中检索对象
从中检索对象 数据库,Active Record提供了几种查找器方法。每个发现者 方法允许您将参数传递给它以执行某些查询 在没有编写原始SQL的数据库上。
方法是:
...略...
- ,其中
以上所有方法都返回
的实例ActiveRecord::Relation
。
因此调用Class.where(...)
的结果是对象的集合。
和
1.1.5 find_by
find_by方法找到第一条记录匹配的某些条件。 例如:
Client.find_by first_name: 'Lifo' # => #<Client id: 1, first_name: "Lifo"> Client.find_by first_name: 'Jon' # => nil
(强调我的)
因此调用Class.find_by(...)
的结果是第一个找到的对象。