2017-02-10 10 views
0

Запросы GraphQL прямо задаются для поиска, если вы ищете запись, например. по его идентификатору или точному значению (в моем случае).Как вернуть отношение ActiveRecord в GraphQL (Rails)?

Мой запрос должен возвращать не один объект ActiveRecord, а ActiveRecord Relation. Как определить, что он может использоваться GraphQL?

field :file_data, !FileDataType, " Returns records based on given date: format 'yyyy-mm-dd hh:mm:ss'" do 
    argument :created_on, !types.String, "format 'yyyy-mm-dd hh:mm:ss'" 

    resolve -> (obj, args, context) do 
    FileData.where("created_on > ?", args["created_on"]) 
    end 
end 

Он работает для одного объекта: если добавить к соотношению «последнего»:

 FileData.where("created_on > ?", args["created_on"]).last 

Для многих результатов я получаю ошибку в рельсах консоли:

NoMethodError (не определен метод ` attribute_name '[any defined & запрошен] для FileData :: ActiveRecord_Relation: ..>

Я был бы признателен за любые предложения.

ответ

2

Используйте тип списка для возврата нескольких объектов:

field :file_data, types[FileDataType] do 
    ... 
end 

types[...] определяет тип списка.

+0

Большое вам спасибо! Я рассматривал дополнительный драгоценный камень (graphql-ruby включает встроенную поддержку соединения для Array, ActiveRecord :: Relations и Sequel :: Datasets), но решение оказалось таким простым! – Katarzyna

 Смежные вопросы

  • Нет связанных вопросов^_^