mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #15597 from eileencodes/reuse-available-collection-methods
reuse available collection? check instead of macro
This commit is contained in:
commit
bcbc4f44ec
3 changed files with 5 additions and 5 deletions
|
@ -179,7 +179,7 @@ module ActiveRecord
|
||||||
def creation_attributes
|
def creation_attributes
|
||||||
attributes = {}
|
attributes = {}
|
||||||
|
|
||||||
if (reflection.has_one? || reflection.macro == :has_many) && !options[:through]
|
if (reflection.has_one? || reflection.collection?) && !options[:through]
|
||||||
attributes[reflection.foreign_key] = owner[reflection.active_record_primary_key]
|
attributes[reflection.foreign_key] = owner[reflection.active_record_primary_key]
|
||||||
|
|
||||||
if reflection.options[:as]
|
if reflection.options[:as]
|
||||||
|
|
|
@ -105,7 +105,7 @@ module ActiveRecord
|
||||||
|
|
||||||
inverse = source_reflection.inverse_of
|
inverse = source_reflection.inverse_of
|
||||||
if inverse
|
if inverse
|
||||||
if inverse.macro == :has_many
|
if inverse.collection?
|
||||||
record.send(inverse.name) << build_through_record(record)
|
record.send(inverse.name) << build_through_record(record)
|
||||||
elsif inverse.has_one?
|
elsif inverse.has_one?
|
||||||
record.send("#{inverse.name}=", build_through_record(record))
|
record.send("#{inverse.name}=", build_through_record(record))
|
||||||
|
@ -170,7 +170,7 @@ module ActiveRecord
|
||||||
klass.decrement_counter counter, records.map(&:id)
|
klass.decrement_counter counter, records.map(&:id)
|
||||||
end
|
end
|
||||||
|
|
||||||
if through_reflection.macro == :has_many && update_through_counter?(method)
|
if through_reflection.collection? && update_through_counter?(method)
|
||||||
update_counter(-count, through_reflection)
|
update_counter(-count, through_reflection)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ module ActiveRecord
|
||||||
records.each do |record|
|
records.each do |record|
|
||||||
through_records = through_records_for(record)
|
through_records = through_records_for(record)
|
||||||
|
|
||||||
if through_reflection.macro == :has_many
|
if through_reflection.collection?
|
||||||
through_records.each { |r| through_association.target.delete(r) }
|
through_records.each { |r| through_association.target.delete(r) }
|
||||||
else
|
else
|
||||||
if through_records.include?(through_association.target)
|
if through_records.include?(through_association.target)
|
||||||
|
|
|
@ -392,7 +392,7 @@ Joining, Preloading and eager loading of these associations is deprecated and wi
|
||||||
# * you use autosave; <tt>autosave: true</tt>
|
# * you use autosave; <tt>autosave: true</tt>
|
||||||
# * the association is a +has_many+ association
|
# * the association is a +has_many+ association
|
||||||
def validate?
|
def validate?
|
||||||
!options[:validate].nil? ? options[:validate] : (options[:autosave] == true || macro == :has_many)
|
!options[:validate].nil? ? options[:validate] : (options[:autosave] == true || collection?)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns +true+ if +self+ is a +belongs_to+ reflection.
|
# Returns +true+ if +self+ is a +belongs_to+ reflection.
|
||||||
|
|
Loading…
Reference in a new issue