# File lib/active_ldap/associations.rb, line 46
      def belongs_to(association_id, options={})
        validate_belongs_to_options(options)
        klass = options[:class]
        klass ||= (options[:class_name] || association_id.to_s).classify
        foreign_key = options[:foreign_key]
        primary_key = options[:primary_key]
        many = options[:many]
        set_associated_class(association_id, klass)

        opts = {
          :association_id => association_id,
          :foreign_key_name => foreign_key,
          :primary_key_name => primary_key,
          :many => many,
          :extend => options[:extend],
        }
        if opts[:many]
          association_class = Association::BelongsToMany
          opts[:foreign_key_name] ||= dn_attribute
        else
          association_class = Association::BelongsTo
          opts[:foreign_key_name] ||= "#{association_id}_id"

          before_save("if defined?(@\#{association_id})\nassociation = @\#{association_id}\nif association and association.updated?\nself[association.__send__(:primary_key)] =\nassociation[\#{opts[:foreign_key_name].dump}]\nend\nend\n")
        end

        association_accessor(association_id) do |target|
          association_class.new(target, opts)
        end
      end