代码之家  ›  专栏  ›  技术社区  ›  AbhinavD

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

  •  3
  • AbhinavD  · 技术社区  · 11 年前

    我使用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”,而不是“name”。

    有没有办法让mongoid给我返回别名而不是实际名称?

    1 回复  |  直到 11 年前
        1
  •  6
  •   goyalankit    11 年前

    好吧,你可以试着重写 可序列化哈希 方法只需在模型中添加类似的内容。

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