在 Rails 6 中,ActiveStorage::Current.host= 方法已被弃用。您可以使用 ActiveStorage::Current.url_options 代替它来设置主机名和其他 URL 选项。例如,如果您要在存储中设置主机名,则可以执行以下操作:
ActiveStorage::Current.url_options = { host: 'https://example.com', protocol: 'https' }
您可以将此代码添加到 config/environments/production.rb 文件中,以确保在生产环境中使用正确的主机名。
请注意,ActiveStorage::Current.url_options 是一个全局变量,将在整个应用程序中使用。因此,请确保在更改值之前了解如何影响您的应用程序。
如果您要更改单个 URL,可以使用 ActiveStorage::Blob.service.url 方法和 ActiveStorage::Variant.service.url 方法。例如:
blob_url = rails_blob_url(attachment) variant_url = rails_representation_url(attachment.variant(resize: '100x100'))
请注意,这些方法返回的 URL 是基于 Rails 的 URL 帮助器的。您可以根据需要修改它们,但请谨慎,因为它们可能会影响代码的其他部分。