У меня странная проблема. У нас есть средство проверки изображений, которое предотвращает загрузку изображений, меньших, чем определенный размер. Если изображение слишком маленькое, оно направляет пользователя на страницу/upload с сообщением об ошибке.Flash-сообщение, отображаемое на странице исключения
Он работал красиво, пока я не внес существенные изменения в приложение; Большой рефакторинг, включая код перехода в модули, обновление до рельсов 3.2.13 и переход от R Magick
до Mini Magick
. Несколько вещей, я не изменил ничего общего с валидатором.
Теперь по какой-то причине он не перенаправляет на страницу/upload со вспышкой. Вместо этого в процессе разработки отображается сообщение об ошибке на странице исключения рельсов под названием «ActiveRecord::RecordInvalid in UploadController#create
». И в производстве, на Heroku, он отвечает на страницу 422: «Изменение, которое вы хотели, было отклонено».
Любые идеи?
Создать действие в контроллере
def create
@item = Item.create!(params[:item])
if @item.save
redirect_to crop_url(item_id: @item.id)
else
error_msg = @item.errors[:base]
redirect_to upload_url, flash: { errors: error_msg }
end
end
метод проверки в модуле upload_process
def validate_minimum_image_size
geometry = cover.geometry
if (! geometry.nil?)
width = geometry[0]
height = geometry[1]
end
unless (width >= 540 && height >= 540)
errors.add :base, "Oops! Your image is too small... Dimensions must be at least 540x540 pixels!"
end
end
Сообщение об ошибке в представлении (HAML)
.error
.pink
- if flash.present?
- if flash[:errors].present?
- flash[:errors].each do |err|
= err