Jak*_*ake 4 ruby-on-rails graphql graphiql
所以我试图查询数据库中的单个用户,但最终得到:
"Field 'userSingle' doesn't accept argument 'first_name'"
Run Code Online (Sandbox Code Playgroud)
当我运行以下查询时,我在 GraphiQL 中得到了它:
query GetSingleUser {
userSingle(first_name: "Test"){
first_name
last_name
}
}
Run Code Online (Sandbox Code Playgroud)
在我的 query_type.rb 我有以下内容:
field :userSingle, !types[Types::UserType] do
resolve -> (obj, args, ctx) {
argument :first_name, !types.String
argument :id, types.ID
User.find(id: args[:id])}
end
Run Code Online (Sandbox Code Playgroud)
最初我有:
field :userSingle, !types[Types::UserType] do
resolve -> (obj, args, ctx) {User.find(id: args[:id])}
end
Run Code Online (Sandbox Code Playgroud)
同样的问题。如果我取出 id: 同样的问题。也有同样的问题:
field :userSingle, !types[Types::UserType] do
resolve -> (obj, args, ctx) {
argument :first_name, !types.String
argument :id, types.ID
user = User.find_by(
id: args[:id],
first_name: args[:first_name])
}
end
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以user_type.rb使用以下内容创建文件:
class Types::UserType < Types::BaseObject
description "A user object"
field :id, Integer, null: false
field :first_name, String, null: false
end
Run Code Online (Sandbox Code Playgroud)
然后在query_type.rb文件中包含以下内容:
module Types
class QueryType < Types::BaseObject
...
# User query
field :user, UserType, null: true do
description "Find a user by first_name"
argument :first_name, String, required: true
end
def user(first_name:)
User.find_by(first_name: first_name)
end
end
end
Run Code Online (Sandbox Code Playgroud)
完成所有这些后,查询应如下所示:
{
user(first_name: "name") {
id
firstName: first_name
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2607 次 |
| 最近记录: |