如何为Action Text附件配置自定义Active Storage存储服务
解答
可以为Action Text单独配置指定的Active Storage存储服务,和你示例中为独立附件属性指定service的逻辑类似,Rails 6.1在支持多Active Storage服务的同时,也提供了Action Text的专属存储配置项,具体操作步骤如下:
- 第一步:先在
config/storage.yml中定义你要分配给Action Text使用的存储服务,示例配置如下:
# 可自定义服务名,比如此处命名为action_text_aws action_text_aws: service: S3 access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> region: 你的AWS区域 bucket: 专门存储Action Text附件的桶名
- 第二步:在Rails全局配置文件(
config/application.rb)或对应环境的配置文件(如生产环境对应config/environments/production.rb)中添加以下配置,指定Action Text使用的存储服务:
config.active_storage.service_for_action_text = :action_text_aws
注意:修改配置前已上传到Action Text富文本中的附件仍会保留在原存储服务中,仅配置生效后新上传的附件会使用新指定的存储服务。
默认情况下未配置上述参数时,Action Text会自动使用Active Storage的默认服务,和普通has_one_attached/has_many_attached不指定service参数时的逻辑一致。
内容的提问来源于stack exchange,提问作者Sharjeel
相关产品推荐
相关产品推荐

