Rails + Graphql - Не удалось реализовать Game.id - PullRequest
1 голос
/ 06 мая 2020

Я пытаюсь реализовать тип запроса, который может искать по имени записи вместо идентификатора. Вот его определение в query_type.rb.

# Get game by name
field :game_by_name, Types::GameType, null: false do
  argument :name, String, required: true
end

def game_by_name(name:)
  Game.where(name: name) //find a game using the name attribute
end

Но когда я запускаю:

query {
  gameByName(name: "League of Legends") {
    id
    name
  }
}

, я получаю следующую ошибку.

Failed to implement Game.id, tried:\n\n        
- `Types::GameType#id`, which did not exist\n        
- `Game::ActiveRecord_Relation#id`, which did not exist\n        
- Looking up hash key `:id` or `\"id\"` on `#<Game::ActiveRecord_Relation:0x00007f5644442888>`, but it wasn't a Hash\n\n        
To implement this field, define one of the methods above (and check for typos)\n

Это странно, потому что следующий тип запроса работает отлично.

# Get game by ID
field :game_by_id, Types::GameType, null: false do
  argument :id, ID, required: true
end

def game_by_id(id:)
  Game.find(id)
end

Вот game_type.rb:

module Types
  class GameType < Types::BaseObject
    field :id, ID, null: false
    field :name, String, null: false
  end
end

Как мне go исправить это? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...