diff options
author | Godfrey Chan <godfreykfc@gmail.com> | 2014-01-28 16:48:11 -0800 |
---|---|---|
committer | Godfrey Chan <godfreykfc@gmail.com> | 2014-01-28 16:48:11 -0800 |
commit | 2c2792b6bd36b8a4efeaaf2b2b43cea1e85d7f6b (patch) | |
tree | 515e8e0aa6951118fe756c96c36ee60952e19f12 /activerecord/lib | |
parent | b9cd5a29dd4c6142b19c861fbf1a67452320b3dd (diff) | |
parent | c1d99344476e1046a609f64776621542b399c929 (diff) | |
download | rails-2c2792b6bd36b8a4efeaaf2b2b43cea1e85d7f6b.tar.gz rails-2c2792b6bd36b8a4efeaaf2b2b43cea1e85d7f6b.tar.bz2 rails-2c2792b6bd36b8a4efeaaf2b2b43cea1e85d7f6b.zip |
Merge pull request #11821 from kuroda/select-and-order-by-aliased-attributes
Handle aliased attributes in AR::Relation#select, #order, etc.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index 993f628fa3..88fc47fada 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -234,7 +234,9 @@ module ActiveRecord def select!(*fields) # :nodoc: fields.flatten! - + fields.map! do |field| + klass.attribute_alias?(field) ? klass.attribute_alias(field).to_sym : field + end self.select_values += fields self end @@ -1048,9 +1050,11 @@ module ActiveRecord order_args.map! do |arg| case arg when Symbol + arg = klass.attribute_alias(arg).to_sym if klass.attribute_alias?(arg) table[arg].asc when Hash arg.map { |field, dir| + field = klass.attribute_alias(field).to_sym if klass.attribute_alias?(field) table[field].send(dir) } else |