aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/lib
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-06-22 07:51:11 -0700
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-06-22 07:51:11 -0700
commitfb8cf55868d555b7f06215db5976c8aaf083d30b (patch)
tree0e7ac61acba88d4a0b6f137343a98eb465353ce8 /activemodel/lib
parent9298d60af08767d427d28f1b0dbf76b2d54418b4 (diff)
parentf984b8152fb497919b30c9c96e471e0736f3a6d2 (diff)
downloadrails-fb8cf55868d555b7f06215db5976c8aaf083d30b.tar.gz
rails-fb8cf55868d555b7f06215db5976c8aaf083d30b.tar.bz2
rails-fb8cf55868d555b7f06215db5976c8aaf083d30b.zip
Merge pull request #6800 from mschneider/dynamic_finders_for_aliased_attributes
Dynamic finders for aliased attributes
Diffstat (limited to 'activemodel/lib')
-rw-r--r--activemodel/lib/active_model/attribute_methods.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb
index a5c9026886..16fcf14009 100644
--- a/activemodel/lib/active_model/attribute_methods.rb
+++ b/activemodel/lib/active_model/attribute_methods.rb
@@ -61,7 +61,8 @@ module ActiveModel
CALL_COMPILABLE_REGEXP = /\A[a-zA-Z_]\w*[!?]?\z/
included do
- class_attribute :attribute_method_matchers, instance_writer: false
+ class_attribute :attribute_aliases, :attribute_method_matchers, instance_writer: false
+ self.attribute_aliases = {}
self.attribute_method_matchers = [ClassMethods::AttributeMethodMatcher.new]
end
@@ -192,6 +193,7 @@ module ActiveModel
# person.nickname # => "Bob"
# person.name # => "Bob"
def alias_attribute(new_name, old_name)
+ self.attribute_aliases = attribute_aliases.merge(new_name.to_s => old_name.to_s)
attribute_method_matchers.each do |matcher|
matcher_new = matcher.method_name(new_name).to_s
matcher_old = matcher.method_name(old_name).to_s