как я могу передать составные данные формы и выгрузку файлов с помощью graphql-ruby на стороне сервера? - PullRequest
0 голосов
/ 05 июня 2018

код ниже для мутации

field :companyUpdate, Types::CompanyType do
    argument :id, !types.ID
    argument :file, Types::FileType
    resolve -> (obj, args, ctx) {
      company = ::Network::Company.find(args[:id])
      company.update!(logo: args[:file])
      company
    }
  end

, а file_type.rb равен

    Types::FileType = GraphQL::ScalarType.define do
  name 'File'
  description 'action_dispatch_uploaded_file'
  coerce_input ->(action_dispatch_uploaded_file, ctx) {
    action_dispatch_uploaded_file
  }
end

, он не работает.Клиент apollo использует apollo-upload-client для загрузки файла, но выдает ошибку, поскольку файл имеет значение null.в чем решение?

1 Ответ

0 голосов
/ 05 июня 2018

Определите тип File в вашей схеме.отправьте форму как обычно!На стороне сервера перед отправкой данных в GraphQL resolver сохраните файл и сохраните переменную!

что-то вроде this .

Обновление:

Apollo Server 2 поддерживает загрузку файлов!используйте эту статью от Apollo, чтобы иметь поддержку загрузки файлов в вашем бэкэнде:

...