Rails:如果image_tag无法从url加载图像,则加载默认图像

时间:2016-10-05 22:29:28

标签: image ruby-on-rails-4

如果image_tag无法从网址加载图片,我想渲染默认图片:

因此,如果image_tag无法从网址加载图片:

<%= image_tag 'https://something.com/image.jpg' %>

然后渲染默认值:

<%= image_tag image_url("default.png")

2 个答案:

答案 0 :(得分:6)

使用onerror标记中的img属性。

<%= image_tag 'https://something.com/image.jpg', 
      src: 'Image Not Found', 
      onerror: 'this.error=null;this.src="default.png"' %>

这将生成生成的HTML:

<img src='https://something.com/image.jpg' 
  alt="Image not found" 
  onerror="this.onerror=null;this.src='default.png';" />

答案 1 :(得分:1)

纯Ruby on Rails解决方案:

<%= image_tag 'devices/my-device.png' rescue image_tag 'devices/unknow-device.png' %>