Как обновить пользователей, которые имеют «старые» баннеры? - PullRequest
1 голос
/ 07 марта 2012

В прошлом пользователи загружали баннеры бесплатно без проверки. Совсем недавно мы выкатили валидацию с баннерами. Как обновить записи пользователей, которые имеют старые баннеры?

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.

Удаление баннеров может разочаровать пользователей. Изменение размеров существующих баннеров сделает некоторые баннеры «эластичными». Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...