在包含mongoid对象ID的Hash或Array上使用to_json时,ID不会在JSON中转义。我必须把它作为一个字符串。 因此,每次我将序列化包含ObjectID的哈希或数组时,生成的JSON都会格式错误。
我正在使用带有Rails 4的Mongoid 4 master。
[26] pry(main)> [Moped::BSON::ObjectId.new].to_json
=> "[51d2f368d0068664e0000002]"
[27] pry(main)> [Moped::BSON::ObjectId.new.to_s].to_json
=> "[\"51d2f425d0068664e0000003\"]"
答案 0 :(得分:2)
似乎在Master Branch上已经解决了
[Moped::BSON::ObjectId.new].to_json
=> "[{\"$oid\":\"51d2ff0322cf02e1a5000001\"}]"
MongoDB中的ObjectId不仅仅是一个String。因此,在此之前将其转换为字符串可能是明智之举。