首页 > 解决方案 > Rails - 使用 Active Storage 在新选项卡中打开图像

问题描述

请耐心等待我,因为我对 Rails 很陌生,这是我在 StackOverflow 上的第一个问题。

我已经以许多不同的方式搜索了这个问题,但还没有找到适合我的解决方案。我感觉我很接近,但也许我的语法有点不对劲,或者我应该尝试调用不同的方法。任何帮助,将不胜感激。

无论如何,解决我的问题。

我正在创建一个允许用户上传相册的网络应用程序。我有用户/专辑/类别/等。一切正常。当客人选择用户个人资料时,他们会看到与该用户关联/创建的相册。如果客人随后选择了相册,他们将被带到album_show 页面,该页面显示相册中的所有图像(尺寸为200x200),该页面完全可以正常工作。我无法开始工作的是,我希望客人能够单击相册中的一张照片并打开一个带有全尺寸图像的新标签。我目前正在尝试使用它

#album_show
<% @album.images.each do |image| %>
  <%= link_to image_tag(image.variant(resize: "200x200")), path_to :image, target: :_blank %>
<% end %>

我尝试替换掉“path_to :image)”,并用“google.com”之类的网站替换它,它可以按预期工作。单击图像会在 google.com 上打开一个新选项卡”(我这样做只是为了查看其余代码是否正常工作)

所以我需要知道的是我应该放什么而不是“path_to:image”,以便在新选项卡中打开单击的图像的全尺寸版本?

提前感谢您的帮助,我知道这是一个菜鸟问题哈哈

标签: htmlrubyrails-activestorage

解决方案


有几种方法可以做到这一点。您可以使用以下行而不是您的 link_to 链接。这正是你想做的。

      <%= link_to image_tag(image.variant(resize: "200x200")), image %>

另一种使用href的方法。

<a href="<%= url_for image %>"><%= image_tag(image.variant(resize: "200x200")) %></a>

这将解决您的问题。


推荐阅读