缺少主机以链接到Rails 5.2.1中的错误

时间:2019-03-08 00:27:31

标签: ruby-on-rails rails-activestorage

我已经解决了有关此错误的每个stackoverflow问题: https://duckduckgo.com/?q=rails+Missing+host+to+link+to

所有文章都提到了相同的解决方案,即在您正在处理的环境文件中添加配置。就我而言,我添加到了development.rb:

Intent

但是我仍然收到臭名昭著的错误消息:

config.active_storage.service = :local
config.action_mailer.default_url_options = { host: "localhost", port: "3000" }
MyApp::Application.default_url_options = Robson::Application.config.action_mailer.default_url_options
Rails.application.routes.default_url_options = Robson::Application.config.action_mailer.default_url_options

在以下位置,如果我尝试打开在本地上传的文件:

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

或者如果我尝试从ActiveAdmin访问文件(我将模型称为“附件”,而我正在使用ActiveStorage)

 open(file.service_url)

我还尝试在字典中将“主机”设置为上述“ link_to”和“ open”功能的参数。我也尝试过“ only_path”。

什么都没有。

任何帮助将不胜感激!

P.S .:我的活动存储配置:

column(:file) {|a| link_to a.file.filename, a.file.service_url}

更新

尝试使用rails_representation_url却收到错误 ActiveStorage :: Attached的未定义方法'variation'

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

test:
  service: Disk
  root: <%= Rails.root.join("tmp/storage") %>

amazon:
  service: S3
  access_key_id: S3_ACCESS_KEY_ID
  secret_access_key: S3_SECRET_ACCESS_KEY
  bucket: S3_BUCKET
  region: S3_REGION

1 个答案:

答案 0 :(得分:0)

我将Rails从5.1升级到5.2,并且遇到了同样的问题。

解决方案:https://github.com/rails/rails/issues/32866

因此,当您使用ActiveRecord变体而不是

   variant.service_url

    rails_representation_url(variant, only_path: true)