1

下面是我对工作正常的图像内容类型的验证。

validates_attachment_size :icon, :less_than => MAX_SIZE.megabytes, :message => "最大大小为 1 mb"
validates_attachment_content_type :icon, :content_type => ['image/jpg','image/jpeg', 'image/png', 'image/gif']

我还需要验证尺寸,我的代码是

validates_each :icon do |record, attr, value|
    如果记录.icon_file_name
       尺寸 = Paperclip::Geometry.from_file(value.queued_for_write[:original])
       if(dimensions.width > 600 || dimensions.height > 400)
         record.errors.add(:file, "#{record.icon_file_name} 尺寸必须小于或等于 600*400")
       结尾
     结尾
   结尾

它给出了imagemagick错误Not recognized by the 'identify' command error

你能对此有所了解吗?

谢谢。

4

3 回答 3

1

如何使用“验证”方法而不是“validates_each” http://paulsturgess.co.uk/articles/33-how-to-write-custom-validation-in-ruby-on-rails

于 2011-08-12T09:54:52.230 回答
0

看起来您的机器上没有安装 ImageMagick。如果你这样做,请输入

识别

并将路径作为值添加到以下回形针选项中environment.rb

Paperclip.options[:command_path] = "/usr/local/bin/" #假设这个文件夹

让知道它是怎么回事..

于 2011-08-12T09:36:44.610 回答
0

最后,在您输入的帮助下完成了。

验证:icon_dimensions
def icon_dimensions
  除非 icon.to_file.nil?
    尺寸 = 回形针::Geometry.from_file(icon.to_file(:original))
    if(dimensions.width > 72 || dimensions.height > 72)
      errors.add(:icon, " 尺寸必须小于或等于 72*72")
    结尾
  结尾
结尾

我希望 validates_each 在之前执行或覆盖其他验证。没有把握 :(

于 2011-08-29T10:50:15.887 回答