3

我正在使用 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 返回别名而不是实际名称?

4

1 回答 1

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
于 2013-03-18T10:11:43.277 回答