Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 5.2 API ActiveStorage如何获取多映像的URL路径?_Ruby On Rails_Rails Activestorage_Ruby On Rails 5.2 - Fatal编程技术网

Ruby on rails Rails 5.2 API ActiveStorage如何获取多映像的URL路径?

Ruby on rails Rails 5.2 API ActiveStorage如何获取多映像的URL路径?,ruby-on-rails,rails-activestorage,ruby-on-rails-5.2,Ruby On Rails,Rails Activestorage,Ruby On Rails 5.2,我正在从回形针迁移到Rails 5.2和活动存储。我只使用rails作为API 如何获取已附加多个图片的URL路径:图片 这是工作的单个文件的代码: class UserSerializer < ActiveModel::Serializer include Rails.application.routes.url_helpers attributes %i[email name username] .... attribute :verification_url do if

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

如何获取已附加多个图片的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
以下是解决方案:

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

  image_urls
end

似乎图像就是实际的url
,单击此链接时,您应该会在浏览器上获得类似于
您的本地\u主机/rails/active\u存储/disk/。
我只在API服务器上使用rails,我需要通过活动序列化程序传递这些url,此解决方案可能适用于常规rails应用程序。Gotchya,您尝试过
rails\u blob\u url吗(图)
关于绝对路径?我目前正在研究rails 5.2的新的活动存储功能,因为一个即将到来的新工作项目需要它。因此,您面临的一些情况肯定会在未来几天帮助我解决。您也可以试试这个
rails blob\u路径(图,处置:“附件”),only_path:true)
查看它是否生成您所需的绝对路径?谢谢。我得到的对象与之前的相同
blob_id:4 created_位于:“2018-05-22T11:21:04.927Z”id:4 name:“images”record_id:42 record_type:“Dish”
image\u url不应该是数组吗?这不会只返回集合中的最后一个图像吗?@Jurgen image\u url是数组。默认情况下,map方法正在创建它。
def images
  return unless object.images.attachments
  image_urls = object.images.map do |image| 
    URI.join(
      ActionController::Base.asset_host, 
      rails_blob_path(image))
  end

  image_urls
end