我使用 Paperclip 来管理 Rails 3 中某个模型的上传图像。这个模型是belongs_to
另一个模型。我希望我的图像路径能够反映这种关系,所以我为此创建了一个自定义插值。
问题是,我还希望能够编辑belongs_to
对象的名称,并且我希望 Paperclip 相应地重命名文件。
这是一个简单的例子:
class Make < ActiveRecord:Base
attr_accessible :name
has_many :models
end
class Model < ActiveRecord:Base
attr_accessible :img, :make, :name
belongs_to :make
has_attached_file :img, :style => { :thumb => "100x100" },
:path => "/cars/:make_name/:name/:style/:hash.png",
:hash_secret => "blabla"
Paperclip.interpolates :make_name do |attachment, style|
attachment.instance.make.name
end
Paperclip.interpolates :name do |attachment, style|
attachment.instance.name
end
end
所以假设我创建了一个 makeChevrolet
和一个 Model Camaro
,我的图像路径将是/cars/chevrolet/camaro/thumb/my_hash.png
如果我决定将Chevrolet
条目名称更改为Chevy
,Rails 会尝试将图像定位在/cars/chevy/camaro/thumb/my_hash.png
,但由于图像未重命名,因此找不到。
重命名条目时,如何强制 Paperclip 更新所有图像路径?
谢谢!