diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index 7de81fc41ba6b..d11f6b9f973e1 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -333,7 +333,7 @@ def define_attribute_method(attr_name, _owner: generated_attribute_methods) end end - # Removes all the previously dynamically defined methods from the class. + # Removes all the previously dynamically defined methods from the class, including alias attribute methods. # # class Person # include ActiveModel::AttributeMethods @@ -341,6 +341,7 @@ def define_attribute_method(attr_name, _owner: generated_attribute_methods) # attr_accessor :name # attribute_method_suffix '_short?' # define_attribute_method :name + # alias_attribute :first_name, :name # # private # def attribute_short?(attr) @@ -350,11 +351,13 @@ def define_attribute_method(attr_name, _owner: generated_attribute_methods) # # person = Person.new # person.name = 'Bob' + # person.first_name # => "Bob" # person.name_short? # => true # # Person.undefine_attribute_methods # # person.name_short? # => NoMethodError + # person.first_name # => NoMethodError def undefine_attribute_methods generated_attribute_methods.module_eval do undef_method(*instance_methods)