2017-02-10 54 views
0

GraphQL查询是直接定义是否搜索记录例如通过它的id或确切的价值(在我的案件日期)。如何在GraphQL(Rails)中返回ActiveRecord关系?

我的查询应该不是返回一个ActiveRecord对象,而是ActiveRecord关系。如何将其定义为可由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'[任何已定义的&请求] FileData :: ActiveRecord_Relation:..>

我将不胜感激任何建议

回答

2

使用列表类型返回多个对象:

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

types[...]定义列表类型。

+0

非常感谢!我正在考虑额外的宝石(graphql-ruby包括内置的连接支持Array,ActiveRecord :: Relations和Sequel :: Datasets),但解决方案变得如此简单! – Katarzyna