No commit activity in last 3 years
No release in over 3 years
Adds some sane controller serialization support of your Mongoid models
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
>= 0

Runtime

 Project Readme

Mongoid::Serializer

Configure Mongoid with Serialization support in Rails Controllers. Will add id as an available attribute, which can be used as the primary key as is expected by most API clients.

Inspired by the discussion here: http://stackoverflow.com/questions/11571777/ember-data-and-mongodb-how-to-handle-id

Dependency: active_model-shaz

active_model-shaz

Note: Should work for Mongoid 3+

Installation

Add this line to your application's Gemfile:

gem 'mongoid-serializer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install mongoid-serializer

Config

Mongoid::Serializer.configure!

Usage

class UserSerializer < ActiveModel::MongoidSerializer
  attributes :id, :first_name, :last_name, :quote, :age, http_status
end

Additionally this gem includes a ActiveModel::StateTracking module. This modules provides the methods created? and deleted? for use with any Mongoid Document.

You can either include this module in models of your choice, or include it into Mongoid::Document to make it part of every model.

ActiveModel::StatusSerializer is configured to try to hook into the StateTracking methods from active_model-shaz and set the JSON http_status key to either 201 or 204, to reflect created or deleted state back to the client.

ActiveModel::MongoidSerializer extends ActiveModel::StatusSerializer and sets the id attribute to point to _id to better work with what the usual client side APIs expect (f.ex for use with ember-data).

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request