如何在 GraphQL (Rails) 中返回 ActiveRecord 关系?

Kat*_*yna 4 ruby-on-rails graphql

GraphQL 查询可以直接定义您是否搜索记录,例如通过其 id 或确切值(在我的例子中是日期)。

我的查询应该返回的不是 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
Run Code Online (Sandbox Code Playgroud)

它适用于一个对象:如果我添加到关系“最后”:

      FileData.where("created_on > ?", args["created_on"]).last
Run Code Online (Sandbox Code Playgroud)

对于许多结果,我在 Rails 控制台中收到错误:

NoMethodError(FileData::ActiveRecord_Relation 的未定义方法“attribute_name”[任何定义和请求]:..>

我将不胜感激任何建议。

rmo*_*lgo 5

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

field :file_data, types[FileDataType] do
  ...
end
Run Code Online (Sandbox Code Playgroud)

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