我正在尝试将其他字段添加到CarrierWave Uploader中,以便将它们存储为Uploader本身的一部分,并与CarrierWave字段一起存储,例如@file
,@model
,@storage
等。
这些字段也是特定于版本的,这就是为什么我希望能够通过<my_model>.<my_uploader>.attribute
和<my_model>.<my_uploader>.versions[:<the_version>]
而不是模型中的其他列来访问它们。
我确实尝试过carrierwave-meta gem,但遇到了错误(NoMethodError: undefined method \'original_filename' for #<CarrierWave::Storage::Fog::File:0xab4134c>
)
似乎尚未修复。
关于如何最好地做到这一点的任何想法或建议?
最佳答案
我不是100%清楚您要做什么。
当我使用载波 gem 时,确实会创建一条包含某些信息的路径。在我的应用程序中,我通常有一个文件 app/uploaders/image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
def store_dir
# "uploads/image/file/187/"
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
...
end
由此,我总是知道模型,什么类型的文件以及ID。
我通常将有关此模型的所有其他信息保存在数据库中。
希望这对您有所帮助,并为您指明了正确的方向
关于ruby-on-rails - CarrierWave Uploader中的其他字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28572604/