Я пытаюсь использовать dm-paperclip для обработки загрузок в моем приложении Sinatra. Он отлично работает со статическими значениями. Однако, когда я пытаюсь использовать динамическую интерполяцию, ключевая часть пути, в которой сохранен загруженный файл - переменная :id
, которая получается из интерполяции dm-paperclip - имеет одно значение во время записи и другое значение при чтении время.
Другими словами, у меня есть это в моей модели:
has_attached_file :attachment,
:url => '/system/attachments/:id/:style/:basename.:extension',
:path => "#{APP_ROOT}/public/system/attachments/:id/:style/:basename.:extension"
# saves to path /my/root/public/system/attachments/217880/original/filename.png
Загружает и сохраняет без проблем. Однако, когда я делаю @file.attachment.path
, это показывает что-то вроде:
/my/root/public/system/attachments/218298/original/filename.png
Я не могу найти ничего в документации dm-paperclip или на форумах, где говорится об этом. Кто-нибудь, пожалуйста, помогите! Я провел часы ...
P.S. Я попытался переключиться на carrierwave-datamapper, но это тоже не сработает, потому что он сильно не работает с to_json, что очень важно для моего приложения.