«Нет совпадений маршрутов» с скрепкой и S3 на Heroku - PullRequest
1 голос
/ 26 августа 2010

Настройка скрепки для использования S3 в моей локальной системе разработки была несложной.Однако я не могу заставить его работать на Heroku.

Файл успешно загружен:

[paperclip] Saving attachments.
[paperclip] saving photos/2/small.jpg
[paperclip] saving photos/2/original.jpg

Однако представления, которые пытаются связать ссылку для загрузки, получают ошибку маршрутизации:

ActionController::RoutingError (No route matches "/photos/small/missing.png" with {:method=>:get}):

Обратите внимание, что он использует «отсутствует» для имени файла и использует «.png» для расширения, даже если файл является «.jpg».

Я пыталсямногочисленные комбинации параметров: url и :path с has_attached_file в соответствии с различными сообщениями в блогах и учебными пособиями, которые я нашел (включая документы Heroku), но ни одна из них не работает.

Каковы правильные шагииспользовать скрепку с S3 на Heroku?

Ответы [ 3 ]

1 голос
/ 27 августа 2010

Найдена проблема: необходимо обновить базу данных.

heroku rake:db:migrate
heroku restart

Я сделал то, что, как я думал, уже сделал бы то же самое: heroku rake db:schema:load, но, возможно, это не сработало или что-то пошло не так в процессе.

Во всяком случае, выполнение этого, наряду с удалением вызовов attr_accessor, как это было предложено в другом блоге, решило проблему.

1 голос
/ 28 сентября 2010

У меня была точно такая же проблема. Отлично работал в dev, загружал файлы в s3 в prod, но не отображал URL для загруженных изображений. Запуск

heroku restart

было то, что исправило это. Не нужно запускать db: migrate (если, конечно, вам не нужно переносить базу данных).

Спасибо за информацию!

0 голосов
/ 26 августа 2010

Можете ли вы вставить код из формы, пожалуйста?Я предполагаю, что вы забыли добавить :html => {:multipart => true}) к тегу form_for

...