Rails/Mongoid error messages in nested attributes

Instead of returning the user.errors.full_messages create a specific error message method for your user model where you handle all your embedded document errors.

class PortalUser
  include Mongoid::Document
  accepts_nested_attributes_for :contact_info
  def associated_errors
    contact_info.errors.full_messages unless contact_infos.errors.empty?
  end
end

and in your controller

flash[:error] = user.associated_errors

Here's the solution I eventually came up with:

Added these lines to the user class

after_validation :handle_post_validation
def handle_post_validation
  if not self.errors[:contact_info].nil?
    self.contact_info.errors.each{ |attr,msg| self.errors.add(attr, msg)}
    self.errors.delete(:contact_info)
  end
end