实例ID与Sinatra + DataMapper应用程序中的dm-paperclip不匹配

时间:2011-08-10 02:42:40

标签: ruby paperclip sinatra datamapper

我正在尝试使用dm-paperclip来处理我的Sinatra应用程序中的上传。它适用于静态值。但是,当我尝试使用动态插值时,上传文件保存在路径中的关键部分 - 来自dm-paperclip插值的:id变量 - 在写入时具有一个值且具有不同的值在阅读时间。

换句话说,我在我的模型中有这个:

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 :(得分:0)

我知道这不能解答您的问题,但我建议您切换到carrierwave-datamapper - 这是一个更好的文件上传解决方案,更重要的是它的维护。