# File lib/her/model/associations/has_many_association.rb, line 7
        def self.attach(klass, name, opts)
          opts = {
            :class_name     => name.to_s.classify,
            :name           => name,
            :data_key       => name,
            :default        => Her::Collection.new,
            :path           => "/#{name}",
            :inverse_of => nil
          }.merge(opts)
          klass.associations[:has_many] << opts

          klass.class_eval "def \#{name}\ncached_name = :\"@_her_association_\#{name}\"\n\ncached_data = (instance_variable_defined?(cached_name) && instance_variable_get(cached_name))\ncached_data || instance_variable_set(cached_name, Her::Model::Associations::HasManyAssociation.proxy(self, \#{opts.inspect}))\nend\n", __FILE__, __LINE__ + 1
        end