<span class= <%= current_user.notifications.size>0? "badge badge-important":"badge" %>>
期望大于 0 的时候 class="badge badge-important", 但结果却是
<span class="badge" badge-important="">
请问为什么?
<%= %>左右加引号 建议把该逻辑放到 helper 中,定义 badge_span_class,这样可读性更好
<%= current_user.notifications.size>0? "badge badge-important":"badge" %> 输出的是 ruby 的字符串。 你的 html 就变成了 <span class=badge badge-important> 因为你没加引号,浏览器自然就认为 badge-important 是另一个属性。
<%= current_user.notifications.size>0? "badge badge-important":"badge" %>
<span class=badge badge-important>
#2 楼 @yakjuly 怪不得我用 content_tag 就好了,谢谢
#1 楼 @geekontheway 恩,好的
#1 楼 @geekontheway 其实还是疑惑,所谓 view 中的逻辑代码放到 helper 中,可以简洁,但是能不能加快运行速度呢?如果都是一个 erb 引擎处理,感觉还是一样的啊
#5 楼 @jiffies 1 楼没说可以加快运行速度吧? 用 helper 和效率没什么关系,就是为了良好的可读性 另外,如果有较大的一段代码要用 helper 输出,这时应选择 partial,而不是用 ruby 代码输出 html
#6 楼 @willmouse 恩,主要是好像经常在其他地方看到说大段逻辑代码在 view 里效率很低,要用 helper,被误导了