我想得到另一个字段解析的字段。
我有一个根据一些参数生成的列表,并想更新总字段
我的方法可能是不正确的。
显然,我试图避免重新运行相同的数据库查询并在查询字符串中向上传递过滤器级别。
因此,假设我的查询使用以下 ruby 类型:
Types::PostListType = GraphQL::ObjectType.define do
name 'PostList'
field :total, !types.Int, default_value: 0 # <-- this is what I'd like to update in :posts resolution
field :page, !types.Int, default_value: 0 # <-- this is what I'd like to update in :posts resolution
field :per_page, !types.Int, default_value: 0 # <-- this is what I'd like to update in :posts resolution
field :posts, types[Types::PostType] do
argument :page, types.Int, default_value: 1
argument :per_page, types.Int, default_value: 10 # <-- also need a limit here (hence why I need a field to tell what's been used in the end)
argument :filter, types.String, default_value: ''
resolve ->(user, *_args) {
posts = function_to_filter(args[:filter])
# how do I update total with posts.count here?
posts.paginate(page: args[:page], per_page: args[:per_page])
# how do I update per_page and page?
}
end
end
我的查询是这样的:
query ProspectList {
posts(filter:"example", page: 2) {
total
page
per_page
posts {
id
...
}
}
}