Как вернуть URL активной памяти, который указывает на вложение (изображение) в приложении Rails? - PullRequest
0 голосов
/ 22 февраля 2020

Я работаю над приложением, в котором пользователи могут создавать и обновлять фотографии своего профиля. Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь создает свое изображение профиля с мобильного устройства, активное хранилище успешно создает вложение и блоб для изображения. Тем не менее, когда пользователь хочет обновить изображение своего профиля, старое вложение удаляется, но URL-адрес, возвращенный службой S3, указывает на пустое изображение AKA на несуществующее изображение (просто белый экран). пример кода, показывающий действие обновления для изображения профиля

Я использую помощник url_for для создания URL-адреса для вложения. Я не уверен, правильно ли это использовать вспомогательный метод. Основная проблема возникает при обновлении изображения профиля пользователя, а не при создании пользователем изображения профиля.

1 Ответ

0 голосов
/ 23 февраля 2020

Для изображения на S3 я использую это для своих приложений. Вам нужно будет изменить переменную @, чтобы она соответствовала тому, что вы используете, а затем поле, которое вы используете, я сделал правильный выбор на основе вашего вопроса. Было бы проще в будущем всегда публиковать код, который вы используете, чтобы мы могли обеспечить лучшую обратную связь

<%= @user.profile_picture.service_url %>

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

<%= Rails.env == 'production' ? @user.profile_picture.service_url : url_for(@user.profile_picture) if @user.profile_picture.attached? %>

, которое даст вам путь к изображению, затем используйте его, как вы, например, если это фоновое изображение

<div style='background-image:url("<%= Rails.env == 'production' ? @user.profile_picture.service_url : url_for(@user.profile_picture) if @user.profile_picture.attached? %>");'>
...