active_storage url_для создания неиспользуемых URL - PullRequest
0 голосов
/ 19 июня 2020

Приложение My Rails 6.x использует ActiveStorage, прикрепляет различные файлы к моим моделям, и оно работает нормально. Но в какой-то момент метод url_for начал создавать URL-адреса, которые нельзя использовать (то есть сервер возвращает 404, когда я пытаюсь получить доступ к URL-адресу, возвращенному url_for). URL-адреса не работают как в моей среде разработки, так и в среде prod, которые используют службы Disk и S3, как определено в моем storage.yml соответственно.

Чтобы попытаться разобраться в проблеме, я создал новое приложение с теми же версиями Rails (6.0.3.2), aws -sdk, et c. и сделал простую модель с приставкой, прикрепил точно так же, и вроде все нормально работает. Итак, я предполагаю, что должна быть какая-то проблема cfg, которую я пропустил, но мне не удалось ее найти.

В обоих случаях файл изображения создается в месте, указанном в storage.yml и оба сгенерированных URL выглядят очень похоже, но в первом случае; доступ к URL-адресу дает 404, но в новом приложении он работает нормально (т.е. URL-адрес возвращает ожидаемое изображение)

Для справки, я разместил ниже код, используемый для создания моделей и прикрепления изображений , в случае, если это интересно.

Любые мысли о том, что я, возможно, неправильно сконфигурировал или забыл перенести, приветствуются!

Сломанное приложение:

liss.image.attach(io: File.open('./test/fixtures/files/liss-image.jpg'), filename: 'liss-image.jpg')

url_for liss.image
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f893bcbb165cd1e89d79dc28ac2eed7236172543/liss-image.jpg

Рабочее приложение :

user = User.create!(first_name: 'John', last_name: 'Appleseed', email: 'ja@gmail.com')
user.image.attach(io: File.open('./test/fixtures/files/liss-image.jpg'), filename: 'liss-image.jpg')

url_for user.image
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--047687b69b8e5877cbfdd93cd6128ddd80d41141/liss-image.jpg

1 Ответ

1 голос
/ 19 июня 2020

Есть ли в маршрутах rails/active_storage/blobs?

Попробуйте проверить маршруты с помощью rails routes.

...