如何在Rails应用程序中存储或保存加载的图像

时间:2018-10-23 21:09:39

标签: ruby-on-rails ruby

我有以下定义:

def images_base64(images)
  images.map {|image| image.image}
end

然后将这样的图像加载到haml文件中:

  - images_base64(@document.meta.images).each do |image|
      = image_tag "data:image/png;base64, #{image}", width: '600px'

有没有办法在Rails中存储或保存加载的图像?

1 个答案:

答案 0 :(得分:0)

这听起来像是一个坏主意,但却不知道您为什么要这样做?这些图像不只是说S3的原因吗?我说这是因为,与让Rails在响应中重新整理大文件相比,使用S3之类的文件来提供资源的效率更高。

同样,当您说“在记忆中”时,这可能意味着很多事情。就像您可能要在Memcache或Redis中缓存庞大的图像标签列表一样。因此,您可以使用cache document do之类的东西在HAML文件中的images_base64周围分割缓存,这会将一大堆image_tag html和base64图像字符串存储在缓存存储区中。

这是一个更糟糕的主意:您可以将图像记忆在内存中。这是有关使用参数进行记忆的链接:http://gavinmiller.io/2013/advanced-memoization-in-ruby/。我之所以仅提及这一点是因为您说的是“内存已加载”。但是我真的不认为您想要这种方法。