Sha256: b56cbc4d50fb6e85d8f2280b0e6971235ede2b7917cd90ad580575c6a0240b67
Contents?: true
Size: 1.22 KB
Versions: 18
Compression:
Stored size: 1.22 KB
Contents
# frozen_string_literal: true module ActiveRecord class AssociationRelation < Relation # :nodoc: def initialize(klass, association, **) super(klass) @association = association end def proxy_association @association end def ==(other) other == records end %w(insert insert_all insert! insert_all! upsert upsert_all).each do |method| class_eval <<~RUBY, __FILE__, __LINE__ + 1 def #{method}(attributes, **kwargs) if @association.reflection.through_reflection? raise ArgumentError, "Bulk insert or upsert is currently not supported for has_many through association" end scoping { klass.#{method}(attributes, **kwargs) } end RUBY end private def _new(attributes, &block) @association.build(attributes, &block) end def _create(attributes, &block) @association.create(attributes, &block) end def _create!(attributes, &block) @association.create!(attributes, &block) end def exec_queries super do |record| @association.set_inverse_instance_from_queries(record) yield record if block_given? end end end end
Version data entries
18 entries across 18 versions & 4 rubygems