html - 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”,以便在新选项卡中打开单击的图像的全尺寸版本?
提前感谢您的帮助,我知道这是一个菜鸟问题哈哈
解决方案
有几种方法可以做到这一点。您可以使用以下行而不是您的 link_to 链接。这正是你想做的。
<%= link_to image_tag(image.variant(resize: "200x200")), image %>
另一种使用href的方法。
<a href="<%= url_for image %>"><%= image_tag(image.variant(resize: "200x200")) %></a>
这将解决您的问题。
推荐阅读
- javascript - 如何使用 API 将 lambda 函数的输出返回到 web-front 搜索
- spring-boot - Spring Boot 手动确认 kafka 消息不起作用
- java - 如何使用 AudioSystem 预加载不同的剪辑?
- c++ - 无法将参数 1 从 wchar 转换为 lpcstr
- python - 计算和比较不同电子表格中不同列的出现次数
- angular - 为什么输入元素没有获得焦点?
- php - 未为 SMTP 电子邮件正确设置联系表单 PHP 文件且未发送
- vue.js - 从其他自定义组件构建自定义组件时如何启用 v-model 绑定
- excel - 如何在 VBA 中监视 SheetChange 在一个范围内,而不仅仅是在带有下拉列表的单元格上
- c# - 如何反序列化包含列表的数组?