sql >> Base de Datos >  >> NoSQL >> MongoDB

Ember-data y MongoDB, cómo manejar _id

Si está utilizando Mongoid, aquí hay una solución que lo hace para que no tenga que agregar un método def id; object._id.to_s; end a cada serializador

Agrega el siguiente inicializador de Rails

Mongoide 3.x

module Moped
  module BSON
    class ObjectId
      alias :to_json :to_s
      alias :as_json :to_s
    end
  end
end

Mongoide 4

module BSON
  class ObjectId
    alias :to_json :to_s
    alias :as_json :to_s
  end
end

Serializador de modelo activo para Building

class BuildingSerializer < ActiveModel::Serializer
  attributes :id, :name
end

JSON resultante

{
  "buildings": [
    {"id":"5338f70741727450f8000000","name":"City Hall"},    
    {"id":"5338f70741727450f8010000","name":"Firestation"}
  ]
}

Este es un parche mono sugerido por brentkirby y actualizado para Mongoid 4 por arthurnn