【发布时间】:2012-10-19 00:08:59
【问题描述】:
我使用 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
假设我创建了一个 Chevrolet 和一个模型 Camaro,我的图像路径将是 /cars/chevrolet/camaro/thumb/my_hash.png
如果我决定将Chevrolet 条目名称更改为Chevy,Rails 会尝试将图像定位在/cars/chevy/camaro/thumb/my_hash.png,但由于图像未重命名,因此找不到。
当条目被重命名时,如何强制 Paperclip 更新所有图像路径?
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 paperclip