如何使用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错误:为_parts.0提供了Hash类型的变量图像无效值(无法强制转换值[“ 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 }})
}
感谢您的帮助,因为我找不到任何官方文档。