From d094aaad19ab0d79d0e74747ad1a7141f914b431 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Mon, 1 Jul 2013 16:23:08 -0700 Subject: [PATCH] the data structure used to store attribute aliases should not be exposed --- activemodel/lib/active_model/attribute_methods.rb | 10 ++++++++++ .../lib/active_record/relation/predicate_builder.rb | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/activemodel/lib/active_model/attribute_methods.rb b/activemodel/lib/active_model/attribute_methods.rb index 986a7ade810d9..d4d592bbbfd15 100644 --- a/activemodel/lib/active_model/attribute_methods.rb +++ b/activemodel/lib/active_model/attribute_methods.rb @@ -218,6 +218,16 @@ def alias_attribute(new_name, old_name) end end + # Is +new_name+ an alias? + def attribute_alias?(new_name) + attribute_aliases.key? new_name.to_s + end + + # Returns the original name for the alias +name+ + def attribute_alias(name) + attribute_aliases[name.to_s] + end + # Declares the attributes that should be prefixed and suffixed by # ActiveModel::AttributeMethods. # diff --git a/activerecord/lib/active_record/relation/predicate_builder.rb b/activerecord/lib/active_record/relation/predicate_builder.rb index b7609c97b51cf..57b7e8d13de73 100644 --- a/activerecord/lib/active_record/relation/predicate_builder.rb +++ b/activerecord/lib/active_record/relation/predicate_builder.rb @@ -6,8 +6,8 @@ def self.build_from_hash(klass, attributes, default_table) attributes.each do |column, value| table = default_table - if column.is_a?(Symbol) && klass.attribute_aliases.key?(column.to_s) - column = klass.attribute_aliases[column.to_s] + if column.is_a?(Symbol) && klass.attribute_alias?(column) + column = klass.attribute_alias(column.to_s) end if value.is_a?(Hash)