def add_children(*args)
      options = args.extract_options!
      raise_if_sex_undefined
      check_incompatible_relationship(:children, *args)
      transaction do
        args.inject(true) do |res,child|
          res &= case sex_before_type_cast
          when gclass.sex_male_value
            child.add_mother(options[:spouse]) if options[:spouse]
            child.add_father(self)
          when gclass.sex_female_value
            child.add_father(options[:spouse]) if options[:spouse]
            child.add_mother(self)
          else
            raise SexError, "Sex value not valid for #{self}"
          end
        end
      end
    end
def add_children(*args)
      options = args.extract_options!
      raise_if_sex_undefined
      check_incompatible_relationship(:children, *args)
      transaction do
        args.inject(true) do |res,child|
          res &= case sex_before_type_cast
          when gclass.sex_male_value
            child.add_mother(options[:spouse]) if options[:spouse]
            child.add_father(self)
          when gclass.sex_female_value
            child.add_father(options[:spouse]) if options[:spouse]
            child.add_mother(self)
          else
            raise SexError, "Sex value not valid for #{self}"
          end
        end
      end
    end
add children by assigning self as parent
 @overload add_children(*children,options={})
   @param [Object] children list of children
   @param [Hash] options
   @option options [Object] spouse if specified, children will have that spouse
 @return [Boolean]