# Mongoid::Max::Denormalize `Mongoid::Max::Denormalize` is a denormalization extension for Mongoid. It was designed for a minimum number of queries to the database. For now, support only Mongoid 3. * Propagate only when needed * Take advantage of atomic operations on multi documents of MongoDB ## Installation Add the gem to your Gemfile: gem 'mongoid_max_denormalize' Or install with RubyGems: $ gem install mongoid_max_denormalize ## Usage ### Basic usage Add `include Mongoid::Max::Denormalize` in your model and also: denormalize relation, field_1, field_2 ... field_n, options ### One to Many Supported fields: normal Mongoid fields, and methods. Supported options: none. Example : class Post include Mongoid::Document field :title def slug title.try(:parameterize) end has_many :comments end class Comment include Mongoid::Document include Mongoid::Max::Denormalize belons_to :post denormalize :post, :title, :slug end @post = Post.create(:title => "Mush from the Wimp") @comment = @post.comments.create @comment.post_title #=> "Mush from the Wimp" @comment.post_slug #=> "mush-from-the-wimp" # @post.update_attributes(:title => "All Must Share The Burden") @comment.reload # to reload the comment from the DB @comment.post_title #=> "All Must Share The Burden" @comment.post_slug #=> "all-must-share-the-burden" **Tips :** In your views, do not use `@comment.post` but `@comment.post_id` or `@comment.post_id?` to avoid a query that checks/retrieve for the post. We want to avoid it, don't we ? Exemple : Check your logs, you'll see queries for the post : # app/views/comments/_comment.html.erb