aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorGodfrey Chan <godfreykfc@gmail.com>2014-01-28 16:48:11 -0800
committerGodfrey Chan <godfreykfc@gmail.com>2014-01-28 16:48:11 -0800
commit2c2792b6bd36b8a4efeaaf2b2b43cea1e85d7f6b (patch)
tree515e8e0aa6951118fe756c96c36ee60952e19f12 /activerecord/lib
parentb9cd5a29dd4c6142b19c861fbf1a67452320b3dd (diff)
parentc1d99344476e1046a609f64776621542b399c929 (diff)
downloadrails-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.rb6
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