Ruby 可以在回形针中选择附件吗?

Ruby 可以在回形针中选择附件吗?,ruby,ruby-on-rails-3,validation,paperclip,paperclip-validation,Ruby,Ruby On Rails 3,Validation,Paperclip,Paperclip Validation,以下是我在模型中使用回形针的方式: has_attached_file :photo, styles: { display: { geometry: "146x153#", format: :jpg, }, message: { geometry: "48x48#", format: :jpg, } } validates_attachment_content_type :photo, content_ty

以下是我在模型中使用回形针的方式:

has_attached_file :photo,
  styles: {
    display: {
      geometry: "146x153#",
      format: :jpg,
    },
    message: {
      geometry: "48x48#",
      format: :jpg,
    }
  }

validates_attachment_content_type :photo, content_type: ['image/jpeg', 'image/png','image/gif']
validates_attachment_size         :photo, less_than:    2.megabytes, unless: :record_is_new?

它工作正常,但是,我想让图像上载成为可选的,即如果用户不希望上载图片,则不应应用验证。

有条件地尝试验证,将其添加到验证中:

validates_something_on :photo, ..., unless: Proc.new { |record| record[:image].nil? }
结果:

validates_attachment_content_type :photo, content_type: ['image/jpeg', 'image/png','image/gif'], unless: Proc.new { |record| record[:image].nil? }
validates_attachment_size         :photo, less_than:    2.megabytes,                             unless: Proc.new { |record| record[:image].nil? }

解决了这个问题,模型进行了以下验证:
验证附件的存在:照片
我完全忽略了这一点