我最初的回形针默认配置包含
:url => "/some_path/:basename.:extension"
但是,我上传的所有文件都没有扩展名,在这种情况下,我不想要“。” (在配置中的basename和extension之间)。所以我想做这样的事情:
:url => lambda { |i| "/some_path/:basename#{".:extension" if i.extension}" }
我试过并得到了“无法将Proc转换成字符串”错误,这告诉我回形针不支持动态配置url,就像它对样式和处理器一样。关于我如何做到这一点的任何想法,越少黑客就越好?
答案 0 :(得分:1)
简短的回答是你替换
:basename.:extension
与
:filename
更详细的答案是basename,filename和extension都是插值,你可以使用'paperclip / interpolations'中定义的任何插值(在paperclip的lib目录中)或定义你自己的插值。
例如:
Paperclip.interpolates(:temperature) do |attachment, style|
attachment.instance.city.temperature(:today)
end
当然,假设has_attached_file
也belongs_to :city
的模型以及您的城市对象知道今天的温度。