【问题标题】:Paperclip validating when no attachment回形针在没有附件时验证
【发布时间】:2015-08-18 04:06:20
【问题描述】:

我有一个使用 Paperclip 上传图像的 rails 模型。

我已经为图片添加了尺寸验证。

validates_attachment-size :image, less_than => 5.megabytes

在没有附件的情况下尝试保存模型时,它会验证不存在的图像并导致保存失败。

如果没有图像,我需要保存模型,并且只有在有图像时才能进行验证。

【问题讨论】:

    标签: ruby-on-rails validation paperclip ruby-on-rails-2


    【解决方案1】:

    首先,您的代码中有错字。 validates_attachment-size 应该是 validates_attachment_size

    你想做的事:

    validates_attachment_size :image, less_than => 5.megabytes
    

    这个内置助手可以正常工作。但是,此验证将强制验证实际附件,这意味着如果图像不存在,它将无法工作。

    因此,如果您想确定图像是否存在,您可以添加custom validator,您将在其中检查图像是否存在。像这样:

    validate :image_presence_and_size
    
    def image_presence_and_size
      if image.present? && image_file_size < 5.megabytes
        errors.add(:file_size, "file size must be less than 5 megabytes.")
      end
    end
    

    【讨论】:

      【解决方案2】:

      试试下面的代码。

      validate :image_present
      
      def image_present
        if image.present? && image_file_size < 2.megabytes
          errors.add(:file_size, "file size must be between 0 and 2 megabytes.")
        end
      end
      

      这里,如果模型中存在图像,则验证将起作用,如果没有图像,则将跳过验证。

      【讨论】:

      • 不错的答案 Aswathy :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多