diff options
author | Ben Toews <mastahyeti@gmail.com> | 2017-10-11 14:15:47 -0600 |
---|---|---|
committer | Matthew Draper <matthew@trebex.net> | 2017-11-09 22:42:15 +1030 |
commit | c711a27d29a3201ff47751a1d788f1e634186dd3 (patch) | |
tree | 6a23b09f48ef0bc30bb2159f595eb7a4a2bc8561 /activerecord/lib/active_record | |
parent | ab03eb9f576312c75e61caaf9705a8ac5175c769 (diff) | |
download | rails-c711a27d29a3201ff47751a1d788f1e634186dd3.tar.gz rails-c711a27d29a3201ff47751a1d788f1e634186dd3.tar.bz2 rails-c711a27d29a3201ff47751a1d788f1e634186dd3.zip |
convert order arg to string before checking if we can reverse it
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index 34723b0b4f..db7fe8123d 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -1097,6 +1097,10 @@ module ActiveRecord end def does_not_support_reverse?(order) + # Account for String subclasses like Arel::Nodes::SqlLiteral that + # override methods like #count. + order = String.new(order) unless order.instance_of?(String) + # Uses SQL function with multiple arguments. (order.include?(",") && order.split(",").find { |section| section.count("(") != section.count(")") }) || # Uses "nulls first" like construction. |