aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-02-26 05:15:14 -0800
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-02-26 05:15:14 -0800
commit8bc5e714f48af5ef94e4c884121ca55729013c7b (patch)
treed79d8bc784cfe968238cf88feccb56354331804f /activerecord/lib/active_record
parent39394ab3dbc32d063adcf03390f36067d4e83a13 (diff)
parente0356990856abc9a84e6e038e7b06e2931502728 (diff)
downloadrails-8bc5e714f48af5ef94e4c884121ca55729013c7b.tar.gz
rails-8bc5e714f48af5ef94e4c884121ca55729013c7b.tar.bz2
rails-8bc5e714f48af5ef94e4c884121ca55729013c7b.zip
Merge pull request #9414 from senny/9275_order_with_symbol_and_join
Expand order(:symbol) to "table".symbol to prevent broken queries on PG.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 225677085f..4b8c40592e 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -285,6 +285,11 @@ module ActiveRecord
references.map! { |arg| arg =~ /^([a-zA-Z]\w*)\.(\w+)/ && $1 }.compact!
references!(references) if references.any?
+ # if a symbol is given we prepend the quoted table name
+ args = args.map { |arg|
+ arg.is_a?(Symbol) ? "#{quoted_table_name}.#{arg} ASC" : arg
+ }
+
self.order_values = args + self.order_values
self
end