使用mongoid通过json返回别名字段

时间:2013-03-14 08:57:00

标签: mongodb mongoid

我正在使用mongoid(2.6.0)及其别名,这就是我的模型字段的样子

class Place
  include Mongoid::Document
  field :n, :as => :name, :type => String
  ....

现在我有一个控制器找到一个位置并将对象作为json返回

@places = Place.find({some query})
respond_to do |format|
  format.json { render json: @places }
end

现在我做的时候

JSON.parse(response.body)

我的回复包含字段“n”而不是“名称”。

有没有办法可以让mongoid给我别名而不是实名?

1 个答案:

答案 0 :(得分:6)

您可以尝试重写 serializable_hash 方法。只需在模型中添加这样的内容即可。

def serializable_hash(options)
  original_hash = super(options)
  Hash[original_hash.map {|k, v| [self.aliased_fields.invert[k] || k , v] }]
end