1
0
Fork 0
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:
Rafael Mendonça França 2014-06-09 23:34:06 -03:00
commit bcbc4f44ec
3 changed files with 5 additions and 5 deletions

View file

@ -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]

View file

@ -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)

View file

@ -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.