Rails 6 + Active Storage: установить образ по умолчанию, который может иметь вариант - PullRequest
1 голос
/ 25 февраля 2020

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

Я мог бы сделать простой помощник, вызывающий изображение из /assets/images, но в этом случае эти изображения выиграли не работаю с вариантами (например, <%= image_tag image.variant(resize_to_fill: [50,50]) %>)

Просматривая веб-страницы, я нашел эту интересную статью, в которой даются некоторые подсказки: https://gorails.com/forum/how-do-i-set-and-use-a-default-image-with-active-storage, но этого недостаточно для моего случая.

Прикрепление изображения с помощью обратного вызова before_create звучит для меня излишне, так как оно собирается загрузить одно и то же изображение несколько раз в хранилище.

  • Есть ли способ установить изображение по умолчанию, которое будет вести себя как любое вложение Active Storage и принимать варианты?
  • Есть ли способ сделать минимагические варианты работы с «обычными» изображениями из пути активов?

1 Ответ

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

Создать метод для получения изображения. Следуйте приведенному ниже фрагменту:

  def fetch_cover_image
    if self.cover_image.attached?
      Rails.application.routes.url_helpers.rails_blob_url(self.cover_image, 
       host: Rails.application.credentials[Rails.env.to_sym][:host])
    else
      ActionController::Base.helpers.image_url('cover_image.jpg')
    end
  end
...