我有以下代码行:
<%= "Brand: " + (@user.activated ? "image_tag('brand1.png', class: 'branding')" : "image_tag('brand2.png', class: 'branding')") + "(#{@user.activated_at})" %>
它应该显示(显示的图像取决于用户是否被激活):
品牌:{image} 2015年6月19日
而不是图像,它显示文字图像路径(所以文本)。我该如何调整代码以显示实际图像呢?
答案 0 :(得分:3)
编写一些erb模板代码真的很奇怪。正如@mudasobwa所说你在图像标签周围引用了错误,并且在erb标签中添加了许多字符串是混乱的,脆弱的和不可读的。这两个图像标签几乎完全相同,因此也可以干掉。
我会做我认为你想做的事情:
<% graphic = @user.activated ? "brand1.png" : "brand2.png" %>
Brand: <%= image_tag(graphic, class: 'branding') %> (<%= @user.activated_at %>)
答案 1 :(得分:1)
您可以尝试使用html_safe
<%= "Brand: #{(@user.activated ? image_tag('brand1.png', class: 'branding') : image_tag('brand2.png', class: 'branding'))} (#{@user.activated_at})".html_safe %>
或者更聪明的方式
<%= "Brand: #{image_tag(@user.activated ? 'brand1.png' : 'brand2.png' , class: 'branding')} (#{@user.activated_at})".html_safe %>