Sha256: dd0880fd539148f7d8b273efbf26334e7b692617abfb5061c3d2cc19382e11fc

Contents?: true

Size: 793 Bytes

Versions: 20

Compression:

Stored size: 793 Bytes

Contents

module ActiveRecord
  module Associations
    class HasOneThroughAssociation < HasManyThroughAssociation
      
      def create_through_record(new_value) #nodoc:
        klass = @reflection.through_reflection.klass

        current_object = @owner.send(@reflection.through_reflection.name)
        
        if current_object
          klass.destroy(current_object)
          @owner.clear_association_cache
        end
        
        @owner.send(@reflection.through_reflection.name,  klass.send(:create, construct_join_attributes(new_value)))
      end
      
    private
      def find(*args)
        super(args.merge(:limit => 1))
      end
    
      def find_target
        super.first
      end

      def reset_target!
        @target = nil
      end        
    end        
  end
end

Version data entries

20 entries across 20 versions & 5 rubygems

Version Path
3mix-castronaut-0.5.0.2 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
masover-castronaut-0.4.4.4 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
masover-castronaut-0.4.4.5 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
masover-castronaut-0.5.0.1 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.4.1 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.4.2 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.4.3 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.4.4 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.4.5 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.4.6 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.5.0 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.5.1 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.5.2 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.5.3 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
relevance-castronaut-0.5.4 vendor/activerecord/lib/active_record/associations/has_one_through_association.rb
radiant-0.7.2 vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb
activerecord-2.1.1 lib/active_record/associations/has_one_through_association.rb
activerecord-2.1.2 lib/active_record/associations/has_one_through_association.rb
radiant-0.7.0 vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb
radiant-0.7.1 vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb