Paperclip предоставляет метод .url для получения URL-адреса вложения для включения в представление.
Мне нужно открыть вложение как файл из Ruby.
Около шести месяцев назад последняя версия Paperclip позволяла нам вызывать to_file для объекта вложения. Хотя это было недокументировано, оно работало стабильно. Но в какой-то момент он перестал работать.
Я хочу иметь возможность открыть сам файл из валидатора (в этом случае он еще не был сохранен в своем конечном месте) или совершенно другим способом после сохранения объекта ActiveModel (в этом случае файл был перемещен в свое окончательное место, которое может быть на Amazon S3).
Вроде варианты такие:
file = File.new(object.attachment.path)
... который работает только с локальными файлами, а не с файлами на S3. Или:
file = object.attachment.queued_for_write[:original]
... который работает только до первого сохранения (я думаю)?
Похоже, должен быть простой способ просто открыть файл (что, в случае чего-то вроде Amazon S3, может потребовать его копирования во временное место), и я предполагаю, что ответ как-то связан с io_adapters, но я прочитал код (и довольно много вопросов StackOverflow), и я все еще в тупике.
Есть ли стандартный способ открыть вложение скрепки как файл, который работает во всех случаях?