aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-05-19 06:16:10 -0700
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-05-19 06:16:10 -0700
commit8405aad6fb0a67367c9e2ce53346ae74927edf9c (patch)
treefc485960eea1d0c9a4d2d79a9d4685520bbdfe36 /activerecord
parentf20032fa15de8bc3d8d47993dbb64f759843120e (diff)
parent1596878c2a2187c92b8ea700e078961b11585f23 (diff)
downloadrails-8405aad6fb0a67367c9e2ce53346ae74927edf9c.tar.gz
rails-8405aad6fb0a67367c9e2ce53346ae74927edf9c.tar.bz2
rails-8405aad6fb0a67367c9e2ce53346ae74927edf9c.zip
Merge pull request #4835 from pacoguzman/refactor_define_restrict_dependency_method
Refactor define_restrict_dependency_method using reflection
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/associations/builder/association.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/associations/builder/association.rb b/activerecord/lib/active_record/associations/builder/association.rb
index 2059d8acdf..9a6896dd55 100644
--- a/activerecord/lib/active_record/associations/builder/association.rb
+++ b/activerecord/lib/active_record/associations/builder/association.rb
@@ -69,12 +69,12 @@ module ActiveRecord::Associations::Builder
def define_restrict_dependency_method
name = self.name
mixin.redefine_method(dependency_method_name) do
- # has_many or has_one associations
- if send(name).respond_to?(:exists?) ? send(name).exists? : !send(name).nil?
+ has_one_macro = association(name).reflection.macro == :has_one
+ if has_one_macro ? !send(name).nil? : send(name).exists?
if dependent_restrict_raises?
raise ActiveRecord::DeleteRestrictionError.new(name)
else
- key = association(name).reflection.macro == :has_one ? "one" : "many"
+ key = has_one_macro ? "one" : "many"
errors.add(:base, :"restrict_dependent_destroy.#{key}",
:record => self.class.human_attribute_name(name).downcase)
return false