在他们所指的在线 APIMongo::ObjectID
中。
我有require 'mongo'
,但仍然 ruby 找不到它。例如,我需要通过它的 Id 找到一个对象,我正在做:
mongo_db['post'].find({_id: Mongo::ObjectID(params[:id])}).next
并且似乎找不到 Mongo::ObjectID 并导致:NoMethodError - undefined method ``ObjectID' for Mongo:Module:
所以过了一段时间我开始require 'bson'
做
mongo_db['post'].find({_id: BSON::ObjectId(params[:id])}).next
它奏效了!
那么 BSON::ObjectId 和 Mongo::ObjectID 之间有什么区别,我需要做什么才能使后者工作(我真的需要这样做)吗?
PS:我有
bson (1.5.2, 1.4.1)
Authors: Jim Menard, Mike Dirolf, Kyle Banker
Homepage: http://www.mongodb.org
Installed at (1.5.2): /usr/local/lib64/ruby/gems/1.9.1
(1.4.1): /usr/local/lib64/ruby/gems/1.9.1
Ruby implementation of BSON
mongo (1.5.2, 1.4.1)
Authors: Jim Menard, Mike Dirolf, Kyle Banker
Homepage: http://www.mongodb.org
Installed at (1.5.2): /usr/local/lib64/ruby/gems/1.9.1
(1.4.1): /usr/local/lib64/ruby/gems/1.9.1
Ruby driver for the MongoDB