Sha256: f2dc2d14524f4ddea574148fd768b87dc1586e49dc3fb980b53174208f2ea15b

Contents?: true

Size: 1.06 KB

Versions: 18

Compression:

Stored size: 1.06 KB

Contents

module ActiveFedora
  module Associations
    class BelongsToAssociation < AssociationProxy #:nodoc:

      def replace(record)
        if record.nil?
          @owner.clear_relationship(@reflection.options[:property])
        else
          raise_on_type_mismatch(record)

          @owner.clear_relationship(@reflection.options[:property])

          @target = (AssociationProxy === record ? record.target : record)
          @owner.add_relationship(@reflection.options[:property], record) unless record.new_record?
          @updated = true
        end

        loaded
        record
      end

      private
        def find_target
          pid = @owner.ids_for_outbound(@reflection.options[:property]).first
          return if pid.nil?
          query = ActiveFedora::SolrService.construct_query_for_pids([pid])
          solr_result = SolrService.query(query) 
          return ActiveFedora::SolrService.reify_solr_results(solr_result).first
        end

        def foreign_key_present
          !@owner.send(@reflection.primary_key_name).nil?
        end

    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
active-fedora-5.0.0 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-5.0.0.rc5 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-5.0.0.rc4 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-5.0.0.rc3 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-5.0.0.rc2 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-5.0.0.rc1 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.6.0.rc4 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.6.0.rc3 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.6.0.rc2 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.6.0.rc1 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.5.3 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.5.2 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.5.1 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.5.0 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.4.1 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.4.0 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.3.0 lib/active_fedora/associations/belongs_to_association.rb
active-fedora-4.2.0 lib/active_fedora/associations/belongs_to_association.rb