#ruby-on-rails #amazon-s3 #paperclip
#ruby-on-rails #amazon-s3 #скрепка
Вопрос:
У меня есть модель activerecord под названием «game» с вложением скрепки под названием «image». Я включил и расширил расширение в этой модели, у которого есть обратные вызовы before_save и некоторые after_save, которые все возвращают true.
Проблема в том, что когда я создаю или обновляю игру, вложение не сохраняется в моей корзине s3, НО столбцы таблицы сохраняются правильно.
Поэтому я всегда получаю исключение «NoSuchKey» в URL-адресе вложения.
Я понял, что, должно быть, проблема с моим расширением, но действительно странно то, что я ни в коем случае не могу воспроизвести эту ошибку ни на моем локальном компьютере, ни на другом сервере, также использующем s3.
Я прочитал десятки строк кода из paperclip, aws-s3, rails и моего собственного приложения, но я не смог найти ошибку.
Я также протестировал ошибку с текущим дампом базы данных локально, но она все еще работает там.
Мой вопрос теперь в том, что может отменить транзакцию сохранения вложения?
Комментарии:
1. на всякий случай: ваша корзина находится в США?
2. моя корзина включена s3.amazonaws.com
3. Держу пари 🙂 но когда вы его создаете, вас спрашивают о его местонахождении. aws gem работает только с пакетами на базе США
4. Возможно, вам придется включить некоторый код. Трудно сказать, что может пойти не так в вашей модели или до / после перехватов без примеров кода.
Ответ №1:
Эта строка была в отдельном действии в контроллере, которое иногда вызывалось:
Game.after_save.clear
После того, как я удалил его, функция заработала должным образом.