Я использую shrine
gem в моем приложении rails для загрузки файлов. Я хочу интегрировать этот камень с библиотекой front-end fineuploader, чтобы улучшить пользовательский интерфейс при загрузке файлов. Я могу интегрировать его в какой-то степени, что я могу загружать файлы через интерфейс fineuploader через связный серверный код в мой s3-ведро.Настроить Shrine gem Ответ JSON
Теперь, при успешной загрузке я получаю код статуса 200 с ответом JSON, который появляется что-то вроде следующего:
{"id":"4a4191c6c43f54c0a1eb2cf482fb3543.PNG","storage":"cache","metadata":{"filename":"IMG_0105.PNG","size":114333,"mime_type":"image/png","width":640,"height":1136}}
Но fineuploader ожидает success
свойства в ответ JSON со значением true
для того, чтобы считать этот ответ успешным. Поэтому мне нужно изменить этот ответ на состояние JSON на 200, чтобы вставить это свойство успеха. Для этого я спросил автор shrine
жемчужину, и он посоветовал мне использовать этот код в алтарном инициализаторе файл:
class FineUploaderResponse
def initialize(app)
@app = app
end
def call(env)
status, headers, body = @app.call(env)
if status == 200
data = JSON.parse(body[0])
data["success"] = true
body[0] = data.to_json
end
[status, headers, body]
end
end
Shrine::UploadEndpoint.use FineUploaderResponse
К сожалению, этот код не работает и Infact с помощью этого кода fineuploader бросает следующее сообщение об ошибке в консоли :
Error when attempting to parse xhr response text (Unexpected end of JSON input)
Пожалуйста, мне советы, как мне нужно изменить этот код для вставки success
свойства с действительным ответом JSON.
Вы нашли решение? – Robin