aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-02-17 01:56:18 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-02-17 02:44:37 +0900
commit311f00116738df175c12cb36bebe79587f88e00b (patch)
treefea3f6a24513a1b5919ed9750ede3810822c79a3 /activerecord/lib/active_record/relation
parent263cfd5cad703a789d56c7e4bb269255048eeeef (diff)
downloadrails-311f00116738df175c12cb36bebe79587f88e00b.tar.gz
rails-311f00116738df175c12cb36bebe79587f88e00b.tar.bz2
rails-311f00116738df175c12cb36bebe79587f88e00b.zip
Fix `order` with custom attributes
This follows up 0ee96d13de29680e148ccb8e5b68025f29fd091c.
Diffstat (limited to 'activerecord/lib/active_record/relation')
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index 75976aa8fc..78533e8ff2 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -1157,14 +1157,20 @@ module ActiveRecord
order_args.map! do |arg|
case arg
when Symbol
- arel_attribute(arg).asc
+ field = arg.to_s
+ arel_column(field) {
+ Arel.sql(connection.quote_table_name(field))
+ }.asc
when Hash
arg.map { |field, dir|
case field
when Arel::Nodes::SqlLiteral
field.send(dir.downcase)
else
- arel_attribute(field).send(dir.downcase)
+ field = field.to_s
+ arel_column(field) {
+ Arel.sql(connection.quote_table_name(field))
+ }.send(dir.downcase)
end
}
else