Easiest way to bubble up your embedded documents errors messages.
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
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"]}]
}]
}
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request