My ruby model, like so:
class User
include Mongoid::Document
field :first_name, type: String
field :birthdate, type: Date
validates :first_name, :birthdate, :presence => true
end
outputs an object like so:
{
_id: {
$oid: "522884c6c4b4ae5c76000001"
},
birthdate: null,
first_name: null,
}
My backbone project has no idea how to handle _id.$oid.
I found this article and code:
https://github.com/rails-api/active_model_serializers/pull/355/files
module Moped
module BSON
class ObjectId
alias :to_json :to_s
end
end
end
I have no idea where to put this, and how to invoke it on the model output, so I tried inside:
/config/initializers/secret_token.rb
I'm new to Ruby and Rails and have no idea how to proceed, so any help is greatly appreciated
Here is a better answer
What you should do is place this in the initializer folder, create a file like this:
/config/initializers/mongoid.rb
Aurthur's answer worked for everything except rabl. If you are using rabl the attributes :id will throw an exception. The following code will be compatible with rabl.
For more information, see the github issue https://github.com/nesquena/rabl/issues/337
Iterating on Kirk's answer:
In Mongoid 4 the Moped’s BSON implementation has been removed in favor of the MongoDB bson gem, so the correct version for Mongoid 4 users is:
For guys using Mongoid 4+ use this,
Reference