def sudo_create(attributes = nil, &block)
      if attributes.is_a?(Array)
        attributes.collect { |attr| sudo_create(attr, &block) }
      else
        object = sudo_new(attributes)
        yield(object) if block_given?
        object.save
        object
      end
    end
def sudo_create(attributes = nil, &block)
      if attributes.is_a?(Array)
        attributes.collect { |attr| sudo_create(attr, &block) }
      else
        object = sudo_new(attributes)
        yield(object) if block_given?
        object.save
        object
      end
    end
Creates an object (or multiple objects) with protected attributes and saves it to the database, if validations pass.
 The resulting object is returned whether the object was saved successfully to the database or not.

 The +attributes+ parameter can be either be a Hash or an Array of Hashes. These Hashes describe the
 attributes on the objects that are to be created.

 ==== Examples
   # Create a single new object
   User.sudo_create(:first_name => 'Pete')

   # Create an Array of new objects
   User.sudo_create([{ :first_name => 'Pete' }, { :first_name => 'Sebastian' }])

   # Create a single object and pass it into a block to set other attributes.
   User.sudo_create(:first_name => 'Pete') do |u|
     u.is_admin = false
   end

   # Creating an Array of new objects using a block, where the block is executed for each object:
   User.sudo_create([{ :first_name => 'Pete' }, { :first_name => 'Sebastian' }]) do |u|
     u.is_admin = false
   end