条件版Carrierwave + Cloudinary Rails中的Nil param 5

时间:2017-12-09 19:53:36

标签: ruby-on-rails-5 carrierwave cloudinary

   我正在生产中使用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。

0 个答案:

没有答案