You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails Active Storage+Swiper点击幻灯片弹窗图片不匹配求助

问题分析与解决方案

你的问题根源非常明确:在link_to标签里,你固定使用了@home.home_photos[0],这意味着不管点击哪个幻灯片,链接都会指向第一张图片的Blob路径,自然弹窗只会显示第一张图。

修正后的代码

<div class="swiper-wrapper"> <!-- Slides-->
  <% @home.home_photos.each do |photo| %>
    <div class="swiper-slide">
      <%= link_to rails_blob_path(photo), "data-toggle" => "gallery-top" do %>
        <%= image_tag photo, class: 'img-fluid' %>
      <% end %>
    </div>
  <% end %>
</div>
<div class="swiper-pagination swiper-pagination-white"></div>
<div class="swiper-button-prev swiper-button-white"></div>
<div class="swiper-button-next swiper-button-white"></div>

关键改动说明

  • 将rails_blob_path(@home.home_photos[0])替换为rails_blob_path(photo):循环中的photo变量代表当前迭代的home_photo对象,这样每个幻灯片的链接都会指向对应的图片资源路径,点击时就能匹配到正确的弹窗图片了。
  • 保持其他Swiper相关结构不变,因为你的幻灯片展示逻辑本身是正常的,只需要修正链接指向的目标即可。

如果你的弹窗插件(比如自定义预览组件或Bootstrap类图库)需要额外关联属性(比如data-target或特定图片标识),可以根据插件要求补充对应的data属性,但核心问题已经通过修正link_to的目标路径解决了。

内容的提问来源于stack exchange,提问作者Sam Terano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:12:27