Я использую SearchObject с GraphQL в Ruby on Rails и создал опцию с именем: order_by
option :order_by, type: LinksOrderBy, with: :apply_order_by
Тип LinksOrderBy определяется следующим образом:
class LinksOrderBy < ::Types::BaseInputObject
argument :created_at, AscDescEnum, required: false
argument :description, AscDescEnum, required: false
argument :id, AscDescEnum, required: false
argument :updated_at, AscDescEnum, required: false
argument :url, AscDescEnum, required: false
end
Но когда я пытаюсьчто-то вроде этого в запросе GraphQL:
{allLinks(order_by:{id: asc, description: desc}) {
id
description
}}
Я не получаю его в правильном порядке:
def apply_order_by(scope, value)
scope.order(value.arguments.to_h.map{|k, v| k + ' ' + v}.join(', ')) # "description desc, id asc"
end
Как видите, правильный порядок должен быть "id, описание ", а не " описание, id ".