如何在ERB模板中添加image.url.present?判断以隐藏空URL缺失图片
解决方案
你可以在遍历图片URL的逻辑中增加非空判断,仅当URL存在时才渲染对应的图片和链接标签,修改后的代码如下:
<% [@car.image.url, @car.image2.url, @car.image3.url, @car.image4.url].each do |image| %> <% # 仅当URL非空时才渲染图片 %> <% if image.present? %> <%= link_to "javascript:void(0)", data: { image: image, zoom_image: image } do %> <%= image_tag image %> <% end %> <% end %> <% end %>
如果你更倾向于使用image.url.present?的判断写法,也可以调整数组存储内容为图片对象,写法如下:
<% [@car.image, @car.image2, @car.image3, @car.image4].each do |image_obj| %> <% if image_obj.url.present? %> <%= link_to "javascript:void(0)", data: { image: image_obj.url, zoom_image: image_obj.url } do %> <%= image_tag image_obj.url %> <% end %> <% end %> <% end %>
两种写法都可以实现空URL跳过渲染的效果,不会出现浏览器默认的缺失图片占位符。
内容的提问来源于stack exchange,提问作者nourza
相关产品推荐
相关产品推荐

