Mongoid + RoR:在create()

时间:2015-04-23 21:31:37

标签: ruby-on-rails mongoid

我想从我的路线之一的将ID

POST user/:id

并使用params [: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字符串很适合我。

1 个答案:

答案 0 :(得分:1)

使用Rails创建对象(本例中为用户)的默认路由是POST /users。您可以自定义此路线,但不建议这样做。因此,请将您想要的其他数据与id一起发送,并设置id

POST /users
{ _id: 123, name: "Maria" }

您可以使用

将整数ID转换为BSON
BSON::ObjectId.from_data(123)

但我觉得在这种情况下没用。