html - Rails - 使用 Active Storage 在新选项卡中打开图像

标签 html ruby rails-activestorage

请耐心等待我,因为我对 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”?

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

最佳答案

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

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

另一种使用 href 的方法。

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

这将解决您的问题。

关于html - Rails - 使用 Active Storage 在新选项卡中打开图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59834712/

相关文章:

html - 如何让一个 flexbox 在容器内移动另一个?

html - 输入打印时内部没有文本,但在屏幕上可见

jquery - 单击jquery的下拉菜单CSS

ruby-on-rails - 为数据库中的多个客户端创建 "walled gardens"的最佳方法是什么?

ruby - 从文本描述中简单过滤掉常用词

ruby-on-rails - 事件存储清除方法为 NilClass 抛出未定义的方法 signed_id

ruby-on-rails - 渲染 json 中的 Rails Active Storage 图像链接

javascript - 每次页面加载时用 javascript 突出显示文本

java - 在 JRuby 中将 BufferedImage 编码为 Base64 (Java)

ruby-on-rails - 如何设置 ActiveStorage 以允许公共(public)和私有(private)附件