Как я могу не изменять URL-адреса вложений Active Storage? - PullRequest
0 голосов
/ 02 ноября 2018

Каждый раз, когда я получаю URL-адрес вложения ActiveStorage (используя object.attachment.service_url), это новый. Есть ли способ использовать всегда один и тот же?

EDIT

storage.yml файл

amazon:
  service: S3
  access_key_id: <%= ENV['AWS_KEY'] %>
  secret_access_key: <%= ENV['AWS_SECRET'] %>
  region: 'sa-east-1'
  bucket: 'production-bucket'

test:
  service: S3
  access_key_id: <%= ENV['AWS_KEY'] %>
  secret_access_key: <%= ENV['AWS_SECRET'] %>
  region: 'sa-east-1'
  bucket: 'staging-bucket'

local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

1 Ответ

0 голосов
/ 02 ноября 2018

Может быть, эта строка поможет вам

Rails.application.routes.url_helpers.rails_blob_path(Object.attachement, only_path:true)

Вы можете добавить этот метод в вашу модель

def attachment_url
    if self.attachment.attached?
      Rails.application.routes.url_helpers.rails_blob_path(self.attachement, only_path:true)
    else
      nil
    end
  end

И звони из любой точки.

Если в вашей модели много вложений

def attachment_url(item_attached)
    if item_attached.attached?
      Rails.application.routes.url_helpers.rails_blob_path(item_attached, only_path:true)
    else
      nil
    end
  end

Object.attachement_url(Object.image)
...