首页 > 解决方案 > 是否可以获取附加在 ActiveStorage 中的图像的 url 并在 Ruby 的控制台上查看它们?

问题描述

我想知道是否可以获取附加到对象的 url 并在 Ruby 的控制台上查看它们?

这一次,我将创建一个方法,可以将附加图像的 url 返回附加图像。

只是为了确保如何做到这一点,我正在尝试在控制台上做类似下面的事情。

在控制台上,

item = Item.first
item.url_for([:images])

但错误显示#<Items 的未定义方法“url_for”

所以我想知道是否有人可以帮助我解决这个问题。

解决这个问题后,我想创建一个类似这样的方法。每个项目在 ActiveStorage 中都有多个图像

def get_images_url
   images_url = Items.map do |item|
   item.getting_url_images
   end
   images_url
end

谢谢你。

标签: ruby-on-railsruby

解决方案


您可以使用Rails.application.routes.url_helpers在控制器或视图之外调用路由助手:

class Item < ApplicationRecord
  has_many_attached :images

  # @example
  #   item = Item.find(1).image_urls
  # @return [Array] - an array of urls
  def image_urls
    item.images.map do |attachment|
      Rails.application.routes.url_helpers.url_for(attachment)
    end
  end

  # @example
  #   urls = Item.all.image_urls
  # @return [Array] - an array of arrays
  def self.image_urls
    self.map(&:image_urls)
  end
end

请参阅活动存储概述:链接到文件


推荐阅读