Rails ActiveStorage загружает файл изображения в Cloudinary из собственного клиента React - PullRequest
0 голосов
/ 05 ноября 2019

Как работает прикрепление изображения к модели с помощью ActiveStorage и Cloudinary? Я пытался следовать этому методу ниже внутри моего файла UserType.rb.

class Hash < Types::BaseInputObject
  argument :_parts, [String], required: false
end

argument :image, Hash, required: false
argument :image_name, String, required: false


decoded_image = Base64.decode64(image)
image_io = StringIO.new(decoded_image)

@user.image.attach(io: image, filename: 'test')
@user.save

Фотоагент от клиента выглядит примерно так:

 "variables"=>{"image"=>{"_parts"=>[["image", {"image"=>"file:///Users/hugohouyez/Library/Developer/CoreSimulator/Devices/B25284C3-EE82-4DD3-AF6D-309F8CA7C608/data/Containers/Data/Application/C5AB683D-EAA5-482B-B52E-60D98B6753CE/Documents/images/79AD6A23-CDF9-451D-AC6B-ED3FE045336E.jpg"

Однако я не могузаставить это работать. Я получаю следующее сообщение об ошибке:

Ошибка: ошибка GraphQL: переменному изображению типа Hash было предоставлено недопустимое значение для _parts.0 (невозможно преобразовать значение ["image", "{\" image \"=> \" file: ...

На клиенте код выглядит так

const [createUser] = useMutation(CREATE_USER);

const createUserHook = ({image, image_name, first_name}) => {
let fileType = image[image.length - 1];
let formData = new FormData();
formData.append('image', {
  image,
  name: `photo.${fileType}`,
  type: `image/${fileType}`,
});
return createUser({ variables: { image: formData, image_name: image_name, first_name: first_name }})
}

Любая помощь приветствуется, так как я не смог найти официальную документацию поэто.

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