我有一个简单的模型对象:
class UserRating
include MongoMapper::EmbeddedDocument
key :idea_id, ObjectId
key :rating, Integer
end
我正在尝试使用以下方法在此对象上设置一个 Idea_Id: user_rating.idea_id = ObjectId.new
这会抛出:“非法的 ObjectID 格式”
这确实看起来像简单的代码...我注意到的唯一奇怪之处是 ObjectID != ObjectId。这可能只是错误消息的问题。没有把握。非常简单的代码。不知道为什么我不能让它工作。如果有帮助,这是在 Cucumber 测试中的 Rails 3 Beta 4 项目的上下文中。我成功地击中了 mongodb 守护进程,所以没有奇怪的连接问题。非常感谢任何指点。
最佳答案
MongoMapper 有一个名为 ObjectId 的代理对象 - 在这种情况下,您需要一个 BSON::ObjectID,它代表一个存储在 mongodb 本身中的 ID。
你可能想要:
key :idea_id, BSON::ObjectID, :index => true
关于ruby - MongoMapper - 手动设置 ObjectId 失败并显示 "illegal ObjectID format",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393006/