在Rails中使用Active Storage时缺少主机问题

时间:2019-06-21 09:42:20

标签: ruby-on-rails rails-activestorage

我不想让我们的服务器受到不必要的影响(为此,我们使用CDN)我想使用直接链接到资源(没有活动的存储重定向)

直接链接可以通过

获取
List<String> referenceList = Arrays.asList("A", "B", "C");
List<Holder> sorted = holders.stream()
    .sorted(Comparator.comparing(t -> referenceList.indexOf(t.letter)))
    .collect(Collectors.toList());

但这会导致错误:

object.active_storage_file.service_url

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true 中,我已经添加了:

env/development.rb

但是,这不能解决问题。知道为什么以及如何做到这一点吗?

1 个答案:

答案 0 :(得分:0)

在您的控制器中,您可以编写:

before_action do
   ActiveStorage::Current.host = request.base_url
end

这将使您可以通过说出主机名称来提供服务网址:

active_storage_file.blob.service_url if active_storage_file.attached?