Mongoid + RoR:在 create() 时初始化 _id
Mongoid + RoR: Initializing the _id while create()
我想从我的其中一条路线中获取 ID
POST user/:id
并使用该参数[:id] 创建对象。当 :id 用作 _id 时,我无意让我的应用程序生成/自动递增 :id。
我试过了:
ObjectId("1").str
2015-04-23T14:22:14.888-0700 E QUERY Error: invalid object id: length
at (shell):1:1.
所以,我猜这与我的极短 :id(长度不是 12 个字节)有关。
一个更基本的问题:如何将 :id 转换为 BSON id?我对将 _id 设为整数不是特别感兴趣,BSON 字符串很适合我。
使用 Rails 创建对象(在本例中为用户)的默认路径是 POST /users
。您可以自定义此路由,但不推荐这样做。所以发送 id
你想要的其他数据,你的 id
将被设置。
POST /users
{ _id: 123, name: "Maria" }
您可以使用
将整数 ID 转换为 BSON
BSON::ObjectId.from_data(123)
但我认为这在这种情况下没有用。
我想从我的其中一条路线中获取 ID
POST user/:id
并使用该参数[:id] 创建对象。当 :id 用作 _id 时,我无意让我的应用程序生成/自动递增 :id。 我试过了:
ObjectId("1").str
2015-04-23T14:22:14.888-0700 E QUERY Error: invalid object id: length
at (shell):1:1.
所以,我猜这与我的极短 :id(长度不是 12 个字节)有关。
一个更基本的问题:如何将 :id 转换为 BSON id?我对将 _id 设为整数不是特别感兴趣,BSON 字符串很适合我。
使用 Rails 创建对象(在本例中为用户)的默认路径是 POST /users
。您可以自定义此路由,但不推荐这样做。所以发送 id
你想要的其他数据,你的 id
将被设置。
POST /users
{ _id: 123, name: "Maria" }
您可以使用
将整数 ID 转换为 BSONBSON::ObjectId.from_data(123)
但我认为这在这种情况下没有用。