From 42d0b1c8ddab9c3ffa8951bf085f5c758673e94b Mon Sep 17 00:00:00 2001 From: Oscar Del Ben Date: Mon, 2 Apr 2012 16:41:43 +0300 Subject: [PATCH] Call undefine_attribute_methods only when defining new attributes --- activemodel/lib/active_model/attribute_methods.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index 99918fdb96..039cd8bdf3 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -102,7 +102,6 @@ module ClassMethods # person.name # => nil def attribute_method_prefix(*prefixes) self.attribute_method_matchers += prefixes.map { |prefix| AttributeMethodMatcher.new :prefix => prefix } - undefine_attribute_methods end # Declares a method available for all attributes with the given suffix. @@ -139,7 +138,6 @@ def attribute_method_prefix(*prefixes) # person.name_short? # => true def attribute_method_suffix(*suffixes) self.attribute_method_matchers += suffixes.map { |suffix| AttributeMethodMatcher.new :suffix => suffix } - undefine_attribute_methods end # Declares a method available for all attributes with the given prefix @@ -177,7 +175,6 @@ def attribute_method_suffix(*suffixes) # person.name # => 'Gemma' def attribute_method_affix(*affixes) self.attribute_method_matchers += affixes.map { |affix| AttributeMethodMatcher.new :prefix => affix[:prefix], :suffix => affix[:suffix] } - undefine_attribute_methods end @@ -225,6 +222,7 @@ def alias_attribute(new_name, old_name) # end # end def define_attribute_methods(*attr_names) + undefine_attribute_methods attr_names.flatten.each { |attr_name| define_attribute_method(attr_name) } end -- GitLab