erb打破空格上的字符串?

时间:2013-06-14 00:05:06

标签: html ruby-on-rails ruby ruby-on-rails-4

<li class=<%= @page_name == "home" ? "active span2" : "span2" %>>

变成:

<li class="active" span2>

当语句评估为真时。

我的预期结果是:

<li class="active span2">

为什么会发生这种情况?

2 个答案:

答案 0 :(得分:3)

你的陈述的输出实际上是

<li class=active span2>

大多数浏览器都会将其转换为您的输出,以便纠正无效标记。

你想让它以这种方式渲染:

<li class="<%= @page_name == "home" ? "active span2" : "span2" %>">

答案 1 :(得分:3)

标记中的引号基本上是在String个对象中声明内容。该语句的输出是一个字符串,但该字符串不会被封装在引号中。为了使标记有效,类属性的值必须在引号中。随后,您需要将整个语句括在双引号中:

<li class="<%= @page_name == 'home' ? 'active span2' : 'span2' %>">