使用carrierwave时判断图片尺寸

14 篇文章 0 订阅

在gemfile中,添加

gem "mini_magick", "~> 3.6.0"

在image_uploader.rb中,添加

include CarrierWave::MiniMagick

...

attr_reader :width, :height
before :cache, :capture_size
  def capture_size(file)
  if version_name.blank?
    if file.path.nil?
      img = ::MiniMagick::Image::read(file.file)
      @width = img[:width]
      @height = img[:height]
    else
      @width, @height = `identify -format "%wx %h" #{file.path}`.split(/x/).map{|dim| dim.to_i }
    end
  end
end

在要需要判断的model中

  validate :check_dimensions, :on => :create
  def check_dimensions
  if !image_cache.nil? && (image.width != 1000 || image.height != 1000)
    errors.add :image, "图片尺寸必须为 1000*1000"
  end
end

在view中

%strong{style: "color:red"}=@sample.errors.messages[:image][0]

more: http://stackoverflow.com/questions/7527887/validate-image-size-in-carrierwave-uploader

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值