2014-02-02 4 views
23

Я развернул приложение rails для heroku, он работал нормально, пока я не сменил домены, локально он отлично работает, и теперь я начал получать следующую ошибку: Paperclip::Errors::MissingRequiredValidatorError ,heroku paperclip weird error Paperclip :: Errors :: MissingRequiredValidatorError

переменные s3 env установлены на heroku, и я не могу найти причину возникновения этой ошибки, справка приветствуется.

EDIT: для справки в будущем он не имеет ничего общего с героикой, после повторного связывания он будет выдавать ту же ошибку локально, как подсказывает ответ.

ответ

52

С версией 4.0 (опубликовано 2 дня назад) Для использования Paperclip требуется подтверждение файла/mime. Просто добавьте следующие строки в модели:

ВАЖНОЕ: замените имя_файла и тип содержимого, так что он подходит для вашего проекта.

Он работает локально, потому что вы, вероятно, еще не обновили скрепку.

+3

Также , это швы вам нужно это после 'has_attached_file' – complistic

+0

См. раздел« Проверки безопасности »в документах« Паперклип »для дополнительных параметров: https://github.com/thoughtbot/paperclip – steakchaser

+2

Кроме того, вы также можете передать' do_not_validate_attachment_file_type: имя_файла', чтобы игнорировать это требование безопасности. ** Используйте это только в контролируемых условиях, когда вы доверяете загрузке своих пользователей. ** –

2

Paperclip (версия 4) теперь защищен по умолчанию. Вы должны проверить либо тип mime, либо имя файла, либо явно отключить проверку.

Это делается для предотвращения подмены типа контента, например. загружая php-файл вместо изображения, которое затем станет общедоступным.

Рекомендуемое решение выглядит следующим образом:

validates_attachment_content_type :image, :content_type => /\Aimage/ 

Документация здесь: https://github.com/thoughtbot/paperclip#security-validations

Примечание это не только проблема S3.

2

или просто поставить это и игнорировать все это

do_not_validate_attachment_file_type :image 
0

Попробуйте один -

validates_attachment_content_type: имя_файла,: content_type => /\Aimage/.*\Z/

Смежные вопросы