association_relation.rb 954 字节
Newer Older
1 2
# frozen_string_literal: true

3 4
module ActiveRecord
  class AssociationRelation < Relation
5 6
    def initialize(klass, association)
      super(klass)
7 8 9
      @association = association
    end

10 11 12
    def proxy_association
      @association
    end
R
Rafael Mendonça França 已提交
13

14
    def ==(other)
15
      other == records
16 17
    end

18
    def build(*args, &block)
19
      block = _deprecated_scope_block("new", &block)
20 21 22 23 24
      scoping { @association.build(*args, &block) }
    end
    alias new build

    def create(*args, &block)
25
      block = _deprecated_scope_block("create", &block)
26 27 28 29
      scoping { @association.create(*args, &block) }
    end

    def create!(*args, &block)
30
      block = _deprecated_scope_block("create!", &block)
31 32 33
      scoping { @association.create!(*args, &block) }
    end

34 35
    private

36
      def exec_queries
37 38 39
        super do |record|
          @association.set_inverse_instance_from_queries(record)
          yield record if block_given?
40
        end
41
      end
42 43
  end
end