diff options
author | Paco Guzman <pacoguzmanp@gmail.com> | 2012-02-01 21:47:33 +0100 |
---|---|---|
committer | Paco Guzman <pacoguzmanp@gmail.com> | 2012-02-01 21:47:33 +0100 |
commit | 1596878c2a2187c92b8ea700e078961b11585f23 (patch) | |
tree | f9c19bf27ad8346b25cb608f7a00b469310a42a2 | |
parent | ab58c5e6640636b7d3ea7f50edfa368cc75fc56b (diff) | |
download | rails-1596878c2a2187c92b8ea700e078961b11585f23.tar.gz rails-1596878c2a2187c92b8ea700e078961b11585f23.tar.bz2 rails-1596878c2a2187c92b8ea700e078961b11585f23.zip |
Refactor define_restrict_dependency_method using reflection
-rw-r--r-- | activerecord/lib/active_record/associations/builder/association.rb | 6 |
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 |