从mongoid中的文档中排除字段?

Min*_*ker 4 ruby-on-rails mongodb mongoid

我有一个具有许多动态属性的Record模型.我想向模型发出请求,将响应作为JSON发送给客户端.但我想_id在此模型中排除类似和所有foreign_keys的字段.

我发现了如何排除某些键的值的有趣答案:如何从Mongoid中的嵌入文档中排除字段?,但响应中的键仍然存在.

我有:

{
 "_id": 1,
 "name": "tom"
}
Run Code Online (Sandbox Code Playgroud)

并且该without方法使:

{
  "_id": nil,
 "name": "tom"
}
Run Code Online (Sandbox Code Playgroud)

但我想要:

{
 "name": "tom"
}
Run Code Online (Sandbox Code Playgroud)

是否可以从结果中删除或排除某些键和值?

Red*_*VII 6

您不想从mongoid文档中删除字段,您要做的是从生成的json中删除字段.在你的控制器中,做

render :json => @model.to_json(:except => :_id)
Run Code Online (Sandbox Code Playgroud)

to_json方法的文档http://apidock.com/rails/ActiveRecord/Serialization/to_json