0

我最初有回形针的默认配置包含

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

但是,我上传的所有文件都没有扩展名,在这种情况下,我不想要“。” (在配置中的基本名称和扩展名之间)在那里。所以我想做这样的事情:

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

我试过了,得到一个“无法将 Proc 转换为字符串”的错误,它告诉我回形针不支持 url 的动态配置,就像它对样式和处理器所做的那样。关于我还能如何做到这一点的任何想法,越少黑客越好?

4

1 回答 1

1

简短的回答是你替换

:basename.:extension

:filename

更详细的答案是 basename、filename 和 extension 都是插值,您可以使用“paperclip/interpolations”(在回形针的 lib 目录中)中定义的任何插值或定义自己的插值。

例如:

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

当然,假设您的城市对象也知道今天的温度的has_attached_file模型belongs_to :city

于 2012-11-14T20:09:48.440 回答