2012-11-14 16 views
0

我原本回形針的默認配置包含回形針:確定文件是否具有動態配置擴展

:url => "/some_path/:basename.:extension" 

但是,沒有所有我上載有擴展名的文件,在這些情況下,我不想要「。」 (在配置中的基本名稱和擴展名之間)在那裏。所以我想這樣做:

:url => lambda { |i| "/some_path/:basename#{".:extension" if i.extension}" } 

我試過了,並得到了「不能轉換成PROC字符串」的錯誤,它告訴我,回形針不支持URL的動態配置的方式它適用於樣式和處理器。任何想法我可以做到這一點,越少越好越好?

回答

1

簡短的回答是,你與

:filename 

更詳細的答案是基本名,文件名和擴展名都是插值,並且可以使用在定義的任何插值「取代

:basename.:extension 

回形針/ interpolations'(在回形針的lib目錄中)或定義你自己的。

例如:

Paperclip.interpolates(:temperature) do |attachment, style| 
    attachment.instance.city.temperature(:today) 
end 

假設,當然,這是has_attached_filebelongs_to :city和你的城市對象知道今天的溫度模型。

相關問題