Мы используем конечную точку Rest, которая возвращает фактическое изображение, например, так:
@image = RestClient.get('http://example.com/api/v1/scopes/12345/icon', headers).body
И ответ выглядит примерно так:
�PNG
���
IHDR���������H�۱���PLTE������� ��/��>��M��\��j��y������������������������������������������5��J��c�����������������3��i��������������:��Z��z�����������C��e��������������.��V��~���������(��U����������@��r�����K��|����������
��B��w���������+��f����*����E��������O������������T�������<����������F����������b��1�܀�����0����?�� �֟��N��S���������L�������������W��������m������s��������;��l��k��%�ڑ�����o��n����4��������`�����_�����؊���ْ�����$�����"�ڜ�������ց��d��������������!�ڥ��g�����������x��I�����և����X���ن�����H��,�ۿ����������p��)�����#��������D��}����h��8�ݝ��������2�ܳ��[������'��t��9��q��a������]��������6��������{�����������������
��u����-��7��P�����A��^����������������������R����=��Y��Q��&�ڼ�����G��v���بxi���=�IDATx���a�����ݳm�����3�L
Мы Вы хотите, чтобы Base64 закодировал это и отобразил его в View в нашем приложении Rails:
<%= image_tag(Base64.encode(@image)) %>
Однако кажется, что Base64 ожидает, что мы откроем файл и передадим это ... например
<%= image_tag(Base64.encode(File.open(@image).read)) %>
Но этот API возвращает реальное изображение ...
Пробовал также с использованием send_data
...
Base64.encode64(send_data(RestClient.get('http://example.com/api/v1/scopes/12345/icon', headers).body, disposition: 'inline'))
Но затем просто отправляет изображение в браузер и игнорирует наше представление ...
Как мы можем Base64 кодировать и отображать это изображение в нашем представлении?