I receive a base64 encoded image from another server and need to save it to my postgres database. I am using rails 6 and carrierwave. Here is my model:
class Quin < ApplicationRecord
before_create :create_graphic
mount_base64_uploader :new_image, NewImageUploader
def create_graphic
url = "https://my-api-url.com"
url_response = HTTParty.post(url,:body => data)
self.new_image = "data:image/png;base64," + url_response.parsed_response
puts "parsed response is #{url_response.parsed_response.inspect}"
end
end
For some reason, when I save, new_image is just saved as nil. I know I am receiving a response. It's really long but here's a truncated sample from logs:
parsed response is "\x89PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x05\xA0\x00\x00\x05\xA0\b\x02\x00\x00\x00'\xC2s\x9F\x00\x01\x00\x00IDATx\x9C\xEC\xFD[\x93$\xD9u\xE7\x8B\xFD\xD7\xF2\xAC\xCA\xEA\xAA\x06\x01j\xCE\x90U\r\x1C\xE9\x98I/2=\xC8Ht\x17\xCD\xF4A\bp83\x94t\x8E$3}#\x9D3:g\x86\x04\x89\xA6\x1D\x99\x1E\xF4\r\xC0\xE1H\x86jp(\xD3\x9B\xDEd\x04\xD0] n\x8D\xEE\xCA\xAC\x88\xCC\xF0\xB5\xF4\xB0\xF6\xCD/q\xCB\xCC\xC8\xC8\xA8\xFA\xFF:;+#\xC2}\xFB\xF6\xED\xDB=\xF6\xFE\xEFu\x11w\a!\x84\x10B\b!\x84\x10B\xC8)\xA3\xC7\xAE\x00!\x84\x10B\b!\x84\x10B\xC8m\xA1\xC0A\b!\x84\x10B\b!\x84\x90\x93\x87\x02\a!\x84\x10B\b!\x84\x10BN\x1E\n\x1C\x84\x10B\b!\x84\x10B\b9y(p\x10B\b!\x84\x10B\b!\xE4\xE4\xA1\xC0A\b!\x84\x10B\b!\x84\x90\x93\x87\x02\a!\x84\x10B\b!\x84\x10BN\x1E\n\x1C\x84\x10B\b!
How do I fix this and save the base64 encoded image that is returned?