Я использую Ruby on Rails 3.0.9 и Paperclip 2.3.Поскольку гем Paperclip предлагает только два метода проверки (validates_attachment_presence
и validates_attachment_content_type
), я пытаюсь реализовать свои собственные методы проверки.
В моем файле модели у меня есть просто , следующая проверкаметод
def validates_avatar(attribute_name, file)
if file.nil? # file value is nil if no file is uploaded
self.errors.add( "#{attribute_name}", "You must select a file" )
else
self.errors.add( "#{attribute_name}", "Avatar is an invalid image format") unless MIME_TYPES.include?(file.content_type)
self.errors.add( "#{attribute_name}", "Avatar is too big" if ( ( file.size > AVATAR_FILE_MAX_SIZE.to_i ) || ( file.size == nil ) )
end
return self.errors.empty?
end
, который я вызываю из своих контроллеров следующим образом:
if @user.validates_avatar(:avatar, params[:user][:avatar])
...
end
Я хотел бы выполнить вышеуказанную проверку для запуска \, чтобы запустить один и тот же способ для всехдругие методы проверки Ruby on Rails (например: as-like validates :title, :presence => true
работает).
Как я могу это сделать и как я могу улучшить приведенный выше код для обработки проверок аватаров?