Изменить URL-адрес по умолчанию из Active Storage - PullRequest
0 голосов
/ 02 мая 2018

Можем ли мы изменить созданный по умолчанию «постоянный» URL-адрес из активного хранилища для перенаправления на S3. Это что-то вроде rails / active_storage / представительств /. Мне не нравится название фреймворка в URL.

Спасибо

1 Ответ

0 голосов
/ 02 мая 2018

UPDATE : Недавно было добавлено, что делает префикс маршрута настраиваемым: https://github.com/rails/rails/commit/7dd9916c0d5e5d149bdde8cbeec42ca49cf3f6ca

Сейчас только в основной ветке, но должен быть интегрирован в ~> 5.2.2 и выше.

Тогда это просто вопрос конфигурации:

Rails.application.configure do
  config.active_storage.routes_prefix = '/whereever'
end

К сожалению, URL-адрес определен в ActiveStorage rout.rb без простых средств для изменения:

get "/rails/active_storage/blobs/:signed_id/*filename" => 
     "active_storage/blobs#show", as: :rails_service_blob
get "/rails/active_storage/representations/:signed_blob_id/:variation_key/*filename" => 
     "active_storage/representations#show", as: :rails_blob_representation

Одно решение отправная точка Я могу подумать о том, чтобы дополнительно определить свои собственные маршруты и переопределить "rails_blob_representation_path" или аналогичный

get "/my_uploads/:signed_blob_id/:variation_key/*filename" => 
  "active_storage/representations#show", as: :my_upload

, а затем переопределить путь в файле помощника и включить помощника в именованные помощники:

Как переопределить маршруты помощника пути в рельсах?

module CustomUrlHelper
  def rails_blob_representation(*args)
    my_upload(*args)
  end
end

# initializer etc.
Rails.application.routes.named_routes.url_helpers_module.send(:include, CustomUrlHelper)

Решение, возможно, нуждается в некоторых корректировках, я его не проверял.

...