скрепка, запись сохраняется до сохранения файла на диске - PullRequest
1 голос
/ 05 октября 2011

Я загружаю изображение, и есть наблюдатель, который срабатывает при создании новой записи.В обозревателе я загружаю изображение через API в другой сервис.Проблема заключается в том, что при выполнении этого локально или в тесте rspec, кажется, что запись сохраняется в БД, прежде чем изображение будет сохранено на диске, и я получаю файл не найден ошибка.Как сделать так, чтобы сохранить правильный порядок?

Ответы [ 2 ]

2 голосов
/ 17 октября 2012

Наблюдатели запускаются до обратных вызовов, определенных в модели.Поэтому метод after_create вашего наблюдателя вызывается до запуска метода after_save скрепки, который обрабатывает вложение.

Рекомендуется использовать after_commit или ar_after_transaction вместо after_save и т. д. При взаимодействии с внешним API это то, что вам нужно в любом случае, так как в противном случае вызовы API не могут быть отменены, если транзакция откатывается.

0 голосов
/ 05 октября 2011

Я не знаю внутренностей вашего наблюдателя и вашего кода.Возможным решением было бы изменить наблюдателя, который будет вызван событием after_create.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...