Rails 5.2 APIActiveStorage如何获得多映像的URL路径?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (196)

我正在从paperclip迁移到Rails 5.2和活动存储。我使用rails作为API。

关于如何获取has_many_attached:images的 URL路径, 下面是有效的代码:

class UserSerializer < ActiveModel::Serializer
include Rails.application.routes.url_helpers
attributes %i[email name username]
....
  attribute :verification_url do
    if object.verification_file.attachment
      URI.join(ActionController::Base.asset_host, rails_blob_path(object.verification_file))
    end
  end
....

end

当我尝试为多图像做类似的事情时,我只是获取这些图像,而不是它们的URL。

请问该如何获得多映像的URL路径?

 include Rails.application.routes.url_helpers
 attributes :id, :name, :description, :images

 def images
  if object.images.attachments
    object.images.each do |image| 
      URI.join(ActionController::Base.asset_host, rails_blob_path(image))
    end
  end 
end
提问于
用户回答回答于

以下是解决办法:

def images
  return unless object.images.attachments
  image_urls = []
  object.images.each do |image| 
    image_urls << URI.join(
      ActionController::Base.asset_host, 
      rails_blob_path(image))
  end

  image_urls
end

扫码关注云+社区

领取腾讯云代金券