Я создаю эксель файл и передаю его в мейлер. Он создается как StringIO.
В мейлере файл 2 раза должен быть прочитан:
1) В моем коде, перед добавлением его в attachments
2) В коде s3, туда я передаю просто StringIO, а они уже сами где-то прочитают.
Проблема в том, что стоит хотя бы раз выполнить .read на этом объекте, то в последующие разы он будет уже пустой. Вот что я нашел -
https://bugs.ruby-lang.org/issues/11445?tab=history . Ответа нет, но как пример пойдет.
Как его вообще клонировать тогда? Файл остается "скрепленным" с его копией даже, если в мейлер передавать разные параметры изначально, типа:
UserMailer.with(
file1: file,
file2: file
).hello_email.deliver_now
Если я делаю file1.read, то file2.read уже вернет "".