2010-03-09 37 views
3

在Rails中使用Paperclip的Polymorphic版本,默認的保存技術意味着具有相同名稱的文件相互覆蓋。在路徑和URL中包含:id不起作用,因爲它只是用old:id覆蓋較早的文件。Polymorphic回形針覆蓋使用相同名稱的文件

我試過插值使用時間戳,但它只是查找當前時間顯示圖像時(加上,因爲我有多個縮略圖它需要超過一秒,因此圖像有不同的郵票)。

Paperclip.interpolates :uniqueid do |attachment, style| 
    Time.now.to_i.to_s 
end 

也試過用十六進制數,但它通過遍歷每個拇指,從而打破每個時間有一個新的十六進制值。

Paperclip.interpolates :uniqueid do |attachment, style| 
    ActiveSupport::SecureRandom.hex(3) 
end 

,因爲它是多態的版本,因此有它自己的模式,我不知道如何從父模型訪問值(在這種情況下,「郵報」)。下面的代碼的變體都拋出了「未定義的方法」錯誤。

Paperclip.interpolates :user_id do |attachment, style| 
    current_user.id 
end 

很抱歉,如果這似乎是一個新手的問​​題,但它是傳統的回形針良好的文檔,但沒有什麼是在那裏爲多形態叉。

回答

0

怎麼樣,包括在:pathhas_attached_file:class

has_attached_file :attachment, 
    :path => ":rails_root/attachments/:class/:id/:attachment/:basename.:extension", 
    :url => "downloads/:id/:title.:extension" 
+0

如果您對同一個類和模型實例有多個文件會怎麼樣? – JosephK 2016-03-03 17:36:52

相關問題