是否有可能使CarrierWave在数据库中存储上传文件的完整路径而不仅仅是文件名,并在每次访问时重新生成它们?
我之所以想要这样做是为了能够更改我存储文件的结构,而不会将已上传的文件消失,直到它们移动到新的位置。
答案 0 :(得分:1)
在你的上传器中,你有这样的结构:
class YourUploader < CarrierWave::Uploader::Base
...
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
...
end
我认为如果您将store_dir
更改为完整路径,它将执行您想要的操作。
答案 1 :(得分:1)
我的解决方法是将目录存储在单独的属性中:
class MyModel
before_save do
self.content_path ||= "uploads/my_model/contents/#{id}"
end
end
然后您的上传器将如下所示:
class YourUploader < CarrierWave::Uploader::Base
...
def store_dir
model.content_path
end
...
end