Изображения, прикрепленные к моделям со скрепкой, оказываются «отсутствующими» после нажатия на геройку - PullRequest
1 голос
/ 25 октября 2011

Я вижу эту как-то странную проблему (хотя у меня такое чувство, что я упускаю что-то очевидное, так как я новичок в рельсах). Когда я загружаю изображение и сохраняю запись через activeadmin в heroku, все, кажется, работает нормально, изображение отображается правильно. Некоторые изменения позже и толчок к героку, изображения, похоже, пропали. Насколько я могу судить, проверяя консоль и сгенерированные пути к файлам в моих представлениях, нет никаких изменений в столбцах, используемых скрепкой, но изображение, похоже, отсутствует в файловой системе. Просто обратите внимание, я использую бесплатную учетную запись heroku atm. Есть идеи, что я могу делать не так? Заранее спасибо

Ответы [ 2 ]

7 голосов
/ 25 октября 2011

Я опережу ответ на поставленный мной вопрос ... Я подозреваю, что вы ожидали, что файловая система Heroku будет работать как нормальная, однако это не так. Вам нужно использовать внешний сервис для размещения ваших изображений, что-то вроде Amazon S3 работает очень хорошо.

Если вы используете Rails 3.1, я предполагаю, что вы используете стек Cedar - хотя вы и можете записывать в эту файловую систему стеков, он является ЛОКАЛЬНЫМ для работающего dyno и не распределяется между dynos. NOR сохраняет его при перезапуске dyno или развертывания - это объясняет, почему вы их видите, пока вы не развернете изменение в heroku, которое перезапустит ваше приложение.

Эта статья http://devcenter.heroku.com/articles/read-only-filesystem#cedar объясняет это более подробно.

1 голос
/ 25 октября 2011

Файловая система Heroku недоступна для записи.Даже если вы сохраните изображения в каталоге tmp, они не будут существовать во всех экземплярах Dyno и, вероятно, исчезнут при уничтожении и создании Dynos.

Вам необходимо сохранить изображения в Amazon S3 или другом аналогичном хранилище.сервис.

...