Как определить тип, содержащий массив массивов?

#graphql-ruby

Вопрос:

С помощью GraphQL-ruby я хочу определить тип поля, содержащего данные в следующей структуре:

 [
  ["2016-06-07", 14134.84],
  ["2016-06-08", 14134.84],
  # ...
]
 

Как бы я пошел на это?
Я пытался

 module Types
  class PerformanceDataType < Types::BaseObject
    field :assets, [[Types::AssetType]], null: false
    # ....
  end
end

module Types
  class AssetType < Types::BaseObject
    field :date, String, null: false
    field :value, Float, null: false
  end
end

 

Я еще не использую эти данные, поэтому не могу сказать, работает ли это, но это кажется слишком неопределенным. Создание схемы не приводило к каким-либо ошибкам.

Ответ №1:

В итоге мы поступили следующим образом:

 # innerArrayType.rb

module Types
  class InnerArrayType < Types::BaseObject
    field :first_value, GraphQL::Types::ISO8601Date, null: false
    field :second_value, Types::DecimalType, null: false
  end
end

# someOtherType.rb

module Types
  class SomeDataType < Types::BaseObject
    field :desiredType, [Types::InnerArrayType], null: false
  end
end
 

Я предполагаю, что вывод заключается в том, что на самом низком уровне массив должен быть определен с использованием типов::BaseObject.