Скрепка терпит неудачу на validates_presence_of - PullRequest
0 голосов
/ 13 января 2011

Хорошо, у меня есть модель, и в этой модели у меня есть

class User < ActiveRecord::Base
  validates_presence_of :name
  has_attached_file :picture, :styles => { :medium => "300x300>", :thumb => "100x100>",:tiny => "25x25>" }
end

когда я создаю пользователя и загружаю картинку, а не ввожу имя, я получаю ожидаемое сообщение

1 error prohibited this user from being saved.
There were problems with the following fields:
    * Name can't be blank

Но изображение исчезло ... когда я смотрю на консоль, я вижу

        [paperclip] identify -format %wx%h '/var/folders/QK/QK+tCPT-Gx8yGDxVQbDuF++++TI/-Tmp-/stream20110113-19714-1ucz75p-0.jpg[0]' 2>/dev/null
        [paperclip] convert '/var/folders/QK/QK+tCPT-Gx8yGDxVQbDuF++++TI/-Tmp-/stream20110113-19714-1ucz75p-0.jpg[0]' -resize "25x25>" '/var/folders/QK/QK+tCPT-Gx8yGDxVQbDuF++++TI/-Tmp-/stream20110113-19714-1ucz75p-020110113-19714-r839l2-0' 2>/dev/null

но изображение пропало на новой странице .... есть ли способ сохранить это изображение, чтобы любому, кто использует страницу, не приходилось снова искать изображение

Ответы [ 4 ]

1 голос
/ 25 января 2011

Эта статья проходит процесс: http://ryantownsend.co.uk/articles/storing-paperclip-file-uploads-when-validation-fails.html Лично я еще не пробовал.

0 голосов
/ 15 сентября 2013

Лучше было бы добавить в форму проверки на стороне клиента, чтобы, если пользователь вводит недопустимые данные, ему сразу же предлагалось исправить их.Если вы поддерживаете только IE10 +, вы можете использовать проверки HTML5, в противном случае вам придется использовать проверки Javascript.

0 голосов
/ 14 января 2011

Браузер сбрасывает форму, когда они возвращаются к ней.Возможно, вы сможете смоделировать что-то, что выглядит как один шаг, загрузив файл с помощью ajax в фоновом режиме, и, имея javascripty совершенство, удерживайте форму от отправки до загрузки файла.

0 голосов
/ 14 января 2011

В основном нет. Это поведение браузера, которое сервер не может контролировать. Если вас беспокоят проверки в других местах вашей модели, из-за которых пользователю придется повторно выбирать и повторно загружать свои изображения, я бы предложил сделать вложение файла отдельным шагом.

...