Ошибка Ruby on Rails PaperClip Gem validate_attachement

У меня googled/stack переполнен часами и не нашел решения этой проблемы. Мне интересно, была ли моя установка PaperClip безуспешной. Я пытаюсь проверить прикрепление изображения в моей папке моделей:

validates :image, presence: true,
content_type: { content_type: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif']},
size: { less_than: 5.megabytes }

Я также попробовал код, более похожий на файл read me на github:

validates_attachment :image, :presence => true,
:content_type => { :content_type => 'image/jpeg', 'image/jpg', 'image/png', 'image/gif' },
:size => { less_than: => 5.megabytes }

И я попытался использовать отдельные проверки

validates_attachment_presence :image
validates_attachment_content_type :image,:content_type => ['image/jpeg', 'image/jpg', 'image/png', 'image/gif']
validates_attachment_size :image,:less_than => 5.megabytes

Во всех случаях я получаю сообщение об ошибке. Или:

Routing Error
undefined method `before_image_post_process' for #<Class:0x00000101461750>
Try running rake routes for more information on available routes.

Или:

NoMethodError in PinsController#index
undefined method `key?' for nil:NilClass

Ответ 1

У вас есть has_attached_file :image в вашем файле? Если это так, убедитесь, что оно есть до validates_attachment.

Ответ 2

Я постоянно получаю эту ошибку только потому, что всегда забываю переименовать переменную изображения одинаково (после копирования из фрагмента):

has_attached_file :avatar...

validates_attachment_content_type :photo, :content_type...

→ Должно быть также :avatar вместо :photo

Это прекрасный пример того, как могут возникать проблемы, когда код не является СУХОЙ.

Ответ 3

savmac fix работал у меня только сейчас. У меня была такая же проблема при открытии геройку. линии в модели были не в порядке ранее, и мое приложение работало без проблем в течение нескольких месяцев - dunno, что изменилось. спасибо!