我观看了Railscast 253并决定使用Carrierwave来满足我的文件上传需求。我知道我必须做一些非常愚蠢的事情,但我在覆盖store_dir方法和我的上传器中的文件名方法方面都没有成功。以下是我的代码,几乎与Railscast中的Ryan Bates代码相同。
class DocumentUploader < CarrierWave::Uploader::Base
# some stuff here
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"documents/#{model.class.to_s.underscore}/#{model.id}"
end
# more stuff here
def filename
"#{active_customer.last_name}_#{active_customer.first_name}_#{active_system.desc}.pdf" if original_filename
end
end
上传的文件存储在public/uploads/tmp
中,并带有一些默认文件名。我在这里做错了什么?在Carrierwave设置中有一个重要的步骤,也许Ryan Bates没有包含在Railscast中吗?