mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Removed warnings about method redefining
This commit is contained in:
committed by
Aaron Patterson
parent
fc71d59219
commit
010eda2eb5
@@ -1354,6 +1354,7 @@ module ActiveRecord
|
||||
end
|
||||
|
||||
def association_accessor_methods(reflection, association_proxy_class)
|
||||
remove_possible_method(reflection.name)
|
||||
define_method(reflection.name) do |*params|
|
||||
force_reload = params.first unless params.empty?
|
||||
association = association_instance_get(reflection.name)
|
||||
@@ -1371,12 +1372,16 @@ module ActiveRecord
|
||||
association.target.nil? ? nil : association
|
||||
end
|
||||
|
||||
define_method("loaded_#{reflection.name}?") do
|
||||
method = "loaded_#{reflection.name}?"
|
||||
remove_possible_method(method)
|
||||
define_method(method) do
|
||||
association = association_instance_get(reflection.name)
|
||||
association && association.loaded?
|
||||
end
|
||||
|
||||
define_method("#{reflection.name}=") do |new_value|
|
||||
method = "#{reflection.name}="
|
||||
remove_possible_method(method)
|
||||
define_method(method) do |new_value|
|
||||
association = association_instance_get(reflection.name)
|
||||
|
||||
if association.nil? || association.target != new_value
|
||||
@@ -1386,8 +1391,10 @@ module ActiveRecord
|
||||
association.replace(new_value)
|
||||
association_instance_set(reflection.name, new_value.nil? ? nil : association)
|
||||
end
|
||||
|
||||
define_method("set_#{reflection.name}_target") do |target|
|
||||
|
||||
method = "set_#{reflection.name}_target"
|
||||
remove_possible_method(method)
|
||||
define_method(method) do |target|
|
||||
return if target.nil? and association_proxy_class == BelongsToAssociation
|
||||
association = association_proxy_class.new(self, reflection)
|
||||
association.target = target
|
||||
@@ -1396,6 +1403,7 @@ module ActiveRecord
|
||||
end
|
||||
|
||||
def collection_reader_method(reflection, association_proxy_class)
|
||||
remove_possible_method(reflection.name)
|
||||
define_method(reflection.name) do |*params|
|
||||
force_reload = params.first unless params.empty?
|
||||
association = association_instance_get(reflection.name)
|
||||
@@ -1409,8 +1417,10 @@ module ActiveRecord
|
||||
|
||||
association
|
||||
end
|
||||
|
||||
define_method("#{reflection.name.to_s.singularize}_ids") do
|
||||
|
||||
method = "#{reflection.name.to_s.singularize}_ids"
|
||||
remove_possible_method(method)
|
||||
define_method(method) do
|
||||
if send(reflection.name).loaded? || reflection.options[:finder_sql]
|
||||
send(reflection.name).map(&:id)
|
||||
else
|
||||
@@ -1436,8 +1446,10 @@ module ActiveRecord
|
||||
association.replace(new_value)
|
||||
association
|
||||
end
|
||||
|
||||
define_method("#{reflection.name.to_s.singularize}_ids=") do |new_value|
|
||||
|
||||
method = "#{reflection.name.to_s.singularize}_ids="
|
||||
remove_possible_method(method)
|
||||
define_method(method) do |new_value|
|
||||
ids = (new_value || []).reject { |nid| nid.blank? }.map(&:to_i)
|
||||
send("#{reflection.name}=", reflection.klass.find(ids).index_by(&:id).values_at(*ids))
|
||||
end
|
||||
@@ -1445,7 +1457,9 @@ module ActiveRecord
|
||||
end
|
||||
|
||||
def association_constructor_method(constructor, reflection, association_proxy_class)
|
||||
define_method("#{constructor}_#{reflection.name}") do |*params|
|
||||
method = "#{constructor}_#{reflection.name}"
|
||||
remove_possible_method(method)
|
||||
define_method(method) do |*params|
|
||||
attributees = params.first unless params.empty?
|
||||
replace_existing = params[1].nil? ? true : params[1]
|
||||
association = association_instance_get(reflection.name)
|
||||
@@ -1487,6 +1501,7 @@ module ActiveRecord
|
||||
|
||||
def add_touch_callbacks(reflection, touch_attribute)
|
||||
method_name = "belongs_to_touch_after_save_or_destroy_for_#{reflection.name}".to_sym
|
||||
remove_possible_method(method_name)
|
||||
define_method(method_name) do
|
||||
association = send(reflection.name)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user