Module: Mongoid::Attributes::ClassMethods
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Extended In:
| |
Defined in: | lib/mongoid/attributes.rb |
Instance Method Summary
-
#alias_attribute(name, original)
Alias the provided name to the original field.
-
#unalias_attribute(name)
Removes a field alias.
Instance Method Details
#alias_attribute(name, original)
Alias the provided name to the original field. This will provide an aliased getter, setter, existence check, and all dirty attribute methods.
# File 'lib/mongoid/attributes.rb', line 325
def alias_attribute(name, original) aliased_fields[name.to_s] = original.to_s alias_method name, original alias_method "#{name}=", "#{original}=" alias_method "#{name}?", "#{original}?" alias_method "#{name}_change", "#{original}_change" alias_method "#{name}_changed?", "#{original}_changed?" alias_method "reset_#{name}!", "reset_#{original}!" alias_method "reset_#{name}_to_default!", "reset_#{original}_to_default!" alias_method "#{name}_was", "#{original}_was" alias_method "#{name}_will_change!", "#{original}_will_change!" alias_method "#{name}_before_type_cast", "#{original}_before_type_cast" end
#unalias_attribute(name)
Removes a field alias.
# File 'lib/mongoid/attributes.rb', line 343
def unalias_attribute(name) unless aliased_fields.delete(name.to_s) raise AttributeError, "Field #{name} is not an aliased field" end remove_method name remove_method "#{name}=" remove_method "#{name}?" remove_method "#{name}_change" remove_method "#{name}_changed?" remove_method "reset_#{name}!" remove_method "reset_#{name}_to_default!" remove_method "#{name}_was" remove_method "#{name}_will_change!" remove_method "#{name}_before_type_cast" end