instance method
preprocess_order_args
Ruby on Rails 5.2.8.1
Since v4.1.16 PrivateSignature
preprocess_order_args(order_args)
No documentation comment.
Parameters
-
order_argsreq
Source
# File activerecord/lib/active_record/relation/query_methods.rb, line 1141
def preprocess_order_args(order_args)
order_args.map! do |arg|
klass.sanitize_sql_for_order(arg)
end
order_args.flatten!
@klass.enforce_raw_sql_whitelist(
order_args.flat_map { |a| a.is_a?(Hash) ? a.keys : a },
whitelist: AttributeMethods::ClassMethods::COLUMN_NAME_ORDER_WHITELIST
)
validate_order_args(order_args)
references = order_args.grep(String)
references.map! { |arg| arg =~ /^\W?(\w+)\W?\./ && $1 }.compact!
references!(references) if references.any?
# if a symbol is given we prepend the quoted table name
order_args.map! do |arg|
case arg
when Symbol
order_column(arg.to_s).asc
when Hash
arg.map { |field, dir|
case field
when Arel::Nodes::SqlLiteral
field.send(dir.downcase)
else
order_column(field.to_s).send(dir.downcase)
end
}
else
arg
end
end.flatten!
end
Defined in activerecord/lib/active_record/relation/query_methods.rb line 1141
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::QueryMethods