/mongoid-embedded-errors-messages

Easiest way to bubble up your embedded documents errors messages.

Primary LanguageRubyMIT LicenseMIT

MongoidEmbeddedErrorsMessages

Easiest way to bubble up your embedded documents errors messages.

Installation

Add this line to your application's Gemfile:

gem 'mongoid-embedded-errors-messages'

And then execute:

$ bundle

Or install it yourself as:

$ gem install mongoid-embedded-errors-messages

Usage

Imagine the following models, with some relations between them:

class Foo
  include Mongoid::Document
  include MongoidEmbeddedErrorsMessages
  embeds_many :bars
  embeds_one :baz
  field :foo_field
end

class Bar
  include Mongoid::Document
  include MongoidEmbeddedErrorsMessages
  embeds_many :quxs
  field :bar_field
end

class Qux
  include Mongoid::Document
  include MongoidEmbeddedErrorsMessages
  field :qux_field
end

class Baz
  include Mongoid::Document
  include MongoidEmbeddedErrorsMessages
  field :baz_field
end

You are now able to retrieve the errors from the embedded documents.

And the embedded errors messages will be:

foo.embedded_errors_messages

{
  :foo_field=>["is invalid"], 
  :baz=>{:baz_field=>["is invalid"]}, 
  :bars=>[{:bar_field=>["is invalid"], 
           :quxs=>[{:qux_field=>["is invalid"]}, nil, {:qux_field=>["is invalid"]}]
         }]
}

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