Sha256: 451dcfb50d45ff3e57ca23db145f2e7d58dd948c9c2c9319da60086dbf13a716

Contents?: true

Size: 724 Bytes

Versions: 19

Compression:

Stored size: 724 Bytes

Contents

module MongoMapper
  module Associations
    class BelongsToPolymorphicProxy < Proxy
      def replace(doc)
        if doc
          doc.save if doc.new?
          id, type = doc.id, doc.class.name
        end
        
        owner[reflection.foreign_key] = id
        owner[reflection.type_key_name] = type
        reset
      end
      
      protected
        def find_target
          return nil if association_class.nil? || owner[reflection.foreign_key].nil?
          association_class.first(:id => owner[reflection.foreign_key])
        end
        
        def association_class
          proxy_owner[reflection.type_key_name] ? proxy_owner[reflection.type_key_name].constantize : nil
        end
    end
  end
end

Version data entries

19 entries across 19 versions & 4 rubygems

Version Path
mrkurt-mongo_mapper-0.6.11 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2010.1.6 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2010.1.5 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2010.1.4 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
tpitale-mongo_mapper-0.6.10 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mrkurt-mongo_mapper-0.6.10 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-0.6.10 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mrkurt-mongo_mapper-0.6.9 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-0.6.9 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mrkurt-mongo_mapper-0.6.8 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
tpitale-mongo_mapper-0.6.9 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.30 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.29 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.23 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.22 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.16 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-0.6.8 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-unstable-2009.12.14 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb
mongo_mapper-0.6.7 lib/mongo_mapper/associations/belongs_to_polymorphic_proxy.rb