2014-09-22 113 views
4

我正在使用Rails 4.1.5 & Mongoid 4.0。 我的API返回蒙戈ID的哈希如何在json响应中返回mongo id作为字符串

{ 
_id: { 
$oid: "541e79bc616b684e75000000" 
} 
created_at: "2014-09-21T07:09:48.599Z" 
} 

我想是这样的

{ 
id: "541e79bc616b684e75000000" 
created_at: "2014-09-21T07:09:48.599Z" 
} 

我已经检查this question了,但我不知道在哪个文件,我需要把这个提到的变化回答

+0

您只需创建一个名为mongoid.rb文件,在lib文件夹中。 – Santhosh 2014-09-22 06:29:52

+0

我在libs文件夹中创建了两个文件moped.rb&mongoid.rb,但问题不是用[this answer]解决(http://stackoverflow.com/questions/23505247/have-to-json-return-a-mongoid -as-a-string) – Akhil 2014-09-22 06:46:52

+0

您是否重新启动服务器? – Santhosh 2014-09-22 07:17:57

回答

10

您需要在config/initializers中创建一个文件并将代码放在那里。

UPDATE:

使用下面的代码:

module BSON 
    class ObjectId 
    def to_json(*args) 
     to_s.to_json 
    end 

    def as_json(*args) 
     to_s.as_json 
    end 
    end 
end 
+0

问题仍然存在移动文件到config/initalizers – Akhil 2014-09-22 10:36:09

+0

我刚刚更新了我的答案。补丁上有一点变化。 – Zakwan 2014-09-22 11:13:45

+1

感谢它工作:) – Akhil 2014-09-22 11:19:18