Несоответствие идентификатора экземпляра с помощью dm-paperclip в приложении Sinatra + DataMapper - PullRequest
0 голосов
/ 10 августа 2011

Я пытаюсь использовать 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, что очень важно для моего приложения.

1 Ответ

0 голосов
/ 10 августа 2011

Я знаю, что это не отвечает на ваш вопрос, но я призываю вас перейти на carrierwave-datamapper - это гораздо лучшее решение для загрузки файлов и, что еще более важно, оно поддерживается.

...