我在视图中有以下几行:
<%
if current_user.is_fav?(a)
cls = "product fav"
else
cls = "product"
end
%>
及以后
<div class=<%= cls %> >
这将产生:
<div class="product" fav>
编辑:正如答案所说,它没有产生此结果,是浏览器“检查”向我显示了它。
我可以解决它,但是上面的代码为什么不起作用?
答案 0 :(得分:4)
这将产生:
<div class="product" fav>
不,不是。它产生<div class=product fav>
。您看到的(通过诸如“检查元素”之类的东西,对吗?)是浏览器试图将损坏的标记解释为尽可能接近html规范。
如其他答案中所述,您应该做的是这样的:
<div class="<%= cls %>">
答案 1 :(得分:1)
<div class=<%= cls %> >
应该是
<div class="<%= cls %>">
您正在将字符串替换为erb占位符,但是基础模板并不表示该占位符本身就是字符串。 ERB可能会尽力而为,但显然无法应对。编辑:Sergio指出这很可能是浏览器在做,而不是ERB。