instance method
alias_attribute
Ruby on Rails 6.1.7.10
Since v3.0.20Signature
alias_attribute(new_name, old_name)
Allows you to make aliases for attributes, which includes getter, setter, and a predicate.
class Content < ActiveRecord::Base # has a title attribute end class Email < Content alias_attribute :subject, :title end e = Email.find(1) e.title # => "Superstars" e.subject # => "Superstars" e.subject? # => true e.subject = "Megastars" e.title # => "Megastars"
Parameters
-
new_namereq -
old_namereq
Source
# File activesupport/lib/active_support/core_ext/module/aliasing.rb, line 21
def alias_attribute(new_name, old_name)
# The following reader methods use an explicit `self` receiver in order to
# support aliases that start with an uppercase letter. Otherwise, they would
# be resolved as constants instead.
module_eval <<-STR, __FILE__, __LINE__ + 1
def #{new_name}; self.#{old_name}; end # def subject; self.title; end
def #{new_name}?; self.#{old_name}?; end # def subject?; self.title?; end
def #{new_name}=(v); self.#{old_name} = v; end # def subject=(v); self.title = v; end
STR
end
Defined in activesupport/lib/active_support/core_ext/module/aliasing.rb line 21
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in Module