def reverse_assign_attributes(attributes_hash)
      attributes_to_assign = attributes_hash.keys.reject{|_attribute_name| attribute_present?(_attribute_name) }

      assign_attributes(attributes_hash.slice(attributes_to_assign))
    end
def reverse_assign_attributes(attributes_hash)
      attributes_to_assign = attributes_hash.keys.reject{|_attribute_name| attribute_present?(_attribute_name) }

      assign_attributes(attributes_hash.slice(attributes_to_assign))
    end
like reverse merge, only assigns attributes which have not yet been assigned