我正在生产中使用herwave平台上的carrierwave和cloudinary上传问题。特别是在条件版本控制中。上传与cloudinary无缝上传,但在生成版本时会发生错误。
请参阅我的简单上传课程:
class MediaAlbumUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
# Choose what kind of storage to use for this uploader:
if Rails.env.production?
include Cloudinary::CarrierWave
# storage :fog
else
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
version :thumb, if: :image? do
process resize_and_pad: [450, 300]
end
def extension_whitelist
%w(jpg jpeg gif png)
end
protected
def image?(new_file)
new_file.content_type.start_with? 'image'
end
end
在验证图片?中,param new_file为nil,查看错误:
NoMethodError(未定义的方法`content_type&#39;对于nil:NilClass)
使用heroku logs -t
提取请记住,上传到cloudinary没有问题,因此new_file不应为null。