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

gr8*_*t06 5 image ruby-on-rails-4

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

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

<%= image_tag 'https://something.com/image.jpg' %>
Run Code Online (Sandbox Code Playgroud)

然后呈现默认值:

<%= image_tag image_url("default.png")
Run Code Online (Sandbox Code Playgroud)

Fak*_*had 6

使用标记中的onerror属性img.

<%= image_tag 'https://something.com/image.jpg', 
      src: 'Image Not Found', 
      onerror: 'this.error=null;this.src="default.png"' %>
Run Code Online (Sandbox Code Playgroud)

这将生成生成的HTML:

<img src='https://something.com/image.jpg' 
  alt="Image not found" 
  onerror="this.onerror=null;this.src='default.png';" />
Run Code Online (Sandbox Code Playgroud)

  • 作为一个补充,如果你想完全隐藏图像,你可以使用这样的东西:`onerror: "this.style.display='none'"` (4认同)

ubu*_*gnu 5

纯 Ruby on Rails 解决方案:

<%= image_tag 'devices/my-device.png' rescue image_tag 'devices/unknow-device.png' %>
Run Code Online (Sandbox Code Playgroud)