Ответ 1
validates_attachment_size: image,: in = > 0.megabytes..2.megabytes
работает сейчас
У меня есть модель рельсов, использующая Paperclip, которая выглядит так:
has_attached_file :image, :styles => { :normal => ['857x392#', :png] },
:url => '/assets/pages/:id/:basename.:extension',
:path => ':rails_root/public/assets/pages/:id/:basename.:extension'
validates_attachment_size :image, :less_than => 2.megabytes
При попытке создать запись этой модели без вложения для загрузки возвращается ошибка проверки:
Были проблемы со следующими поля:
* Image file size file size must be between 0 and 2097152 bytes.
Я пробовал передать оба: allow_blank = > true и: allow_nil = > true после утверждения валидации в модели, но они не работали.
Как разрешить параметр: image быть пустым?
validates_attachment_size: image,: in = > 0.megabytes..2.megabytes
работает сейчас
validates_attachment_size :image, :less_than => 25.megabytes,
:unless => Proc.new {|m| m[:image].nil?}
отлично работает для меня
Проверка скрепки только проверяет диапазон и не заботится о :allow_nil => true
Что вы можете сделать, это попытаться установить :min => nil
или :min => -1
, возможно, это сработает.
Update: Это не будет работать в последней версии Paperclip, поскольку они изменили работу валидации. Вместо этого вы можете попробовать:
validates_attachment_size :image, :less_than => 2.megabytes,
:unless => Proc.new {|model| model.image }
Попробуйте использовать следующий код.
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