我正在使用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给我别名而不是实名?
答案 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