如何使用 GraphQL 获取所有用户模型

use*_*904 1 ruby rubygems ruby-on-rails graphql

我已经为此苦苦挣扎了一个多小时,但似乎无法让它发挥作用。

我正在将 GraphQL 的 ruby​​ 实现与 Rails 一起使用,并且我正在尝试使用 GraphQL 执行 User.all。我有以下 QueryType 定义字段用户。

QueryType = GraphQL::ObjectType.define do
  name "Query"
  description "The query root for this schema"

  field :users do
    types[IndexUserType]

    resolve -> () {
      User.all
    }
  end
end
Run Code Online (Sandbox Code Playgroud)

和 IndexUserType 定义如下:

IndexUserType = GraphQL::ObjectType.define do
  name "IndexUserType"
  description "An Index User"
  field :firstname, types.String
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下查询获取所有用户的名字:

query={ users { firstname } }
Run Code Online (Sandbox Code Playgroud)

通常我可以对 Has-Many 关系进行以下操作,但是这不起作用,我认为这是因为没有父级就无法设置“obj”。

resolve -> (obj, args, ctx) {
  obj.cousins
}
Run Code Online (Sandbox Code Playgroud)

use*_*904 5

经过大量的反复试验,我设法解决了以下问题:

field :users, types[IndexUserType] do
  resolve -> (obj, args, ctx) {
    User.all
  }
end
Run Code Online (Sandbox Code Playgroud)