В прошлом пользователи загружали баннеры бесплатно без проверки. Совсем недавно мы выкатили валидацию с баннерами. Как обновить записи пользователей, которые имеют старые баннеры?
class User < ActiveRecord::Base
require 'carrierwave/orm/activerecord'
mount_uploader :banner, BannerUploader
validate :banner_size_validation, :if => :banner?
validate :check_banner_dimensions, :if => :banner?
def banner_size_validation
errors.add :banner, 'should be less than 1mb' if banner.size > 1.megabytes
end
def check_banner_dimensions
tmp_banner = MiniMagick::Image.open(banner)
errors.add :banner, 'height must be no more than 400px.' if tmp_banner[:height] > 400
end
end
Например. Пользователь с идентификатором 3 загрузил баннер в то время, когда наши проверки не выполнялись.
User.find(3).update_attributes!(:artist_name => 'vanilla')
# ActiveRecord::RecordInvalid: Validation failed: Banner height must be no more than 400px.
Удаление баннеров может разочаровать пользователей. Изменение размеров существующих баннеров сделает некоторые баннеры «эластичными». Есть предложения?