    # File lib/active_record/associations.rb, line 874
          def has_one(association_id, options = {})
            if options[:through]
              reflection = create_has_one_through_reflection(association_id, options)
              association_accessor_methods(reflection, ActiveRecord::Associations::HasOneThroughAssociation)
            else
              reflection = create_has_one_reflection(association_id, options)

              ivar = "@#{reflection.name}"

              method_name = "has_one_after_save_for_#{reflection.name}".to_sym
              define_method(method_name) do
                association = instance_variable_get(ivar) if instance_variable_defined?(ivar)

                if !association.nil? && (new_record? || association.new_record? || association[reflection.primary_key_name] != id)
                  association[reflection.primary_key_name] = id
                  association.save(true)
                end
              end
              after_save method_name

              add_single_associated_validation_callbacks(reflection.name) if options[:validate] == true
              association_accessor_methods(reflection, HasOneAssociation)
              association_constructor_method(:build,  reflection, HasOneAssociation)
              association_constructor_method(:create, reflection, HasOneAssociation)

              configure_dependency_for_has_one(reflection)
            end
          end