这是我的模型
class Technology < ActiveRecord::Base
attr_accessible :name #etc ....
has_attached_file :logo, :path => ":rails_root/public/technologies/logos/:normalized_input_file_name"
Paperclip.interpolates :normalized_input_file_name do |attachment, style|
attachment.instance.normalized_input_file_name
end
def normalized_input_file_name
name = "#{self.name}".downcase
"#{self.tuid}_"+name.gsub(/[^a-zA-Z0-9]{2,}/,' ').strip.gsub(/\W/,'_').gsub(/\A_/,'').gsub(/_\z/,'')+"_150x"+".png"
end
end
当我创建任何技术时,我会使用“normalized_input_file_name”方法为它上传一个徽标,并将图像以我想要的新名称存储在公共目录中。例如技术名称是 HTML5,文件名变成 id_html5_150x.png 但是当我需要更新名称时,图像路径也发生了变化。例如 HTML 5 文件名变为 id_html_5_150x.png 此处实际图像文件名未更新但路径已更新。所以找不到图。