2013-06-14 2 views
1
<li class=<%= @page_name == "home" ? "active span2" : "span2" %>> 

превращается в:erb разбивает строки на пробелы?

<li class="active" span2> 

Когда оператор оценивает верно.

Мой ожидаемый результат:

<li class="active span2"> 

Любые идеи, почему это происходит?

ответ

3

Кавычки в тегах, по существу, объявляя содержимое в качестве String объектов. Результат оператора - это строка, но строка не будет инкапсулирована в кавычки. Значение атрибута класса должно быть в кавычках для того, чтобы разметка была действительной. Впоследствии вам нужно будет заключить весь отчет в двойные кавычки:

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

О, да! И спасибо за чередование ваших цитат, хороший улов. – Chiperific

3

Выход вашего заявления на самом деле

<li class=active span2> 

, который будет включен в ваш выход в большинстве браузеров, в попытке исправить неверную разметку.

Вы хотите иметь это делают так:

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

Желаю, чтобы я принял 2 ответа, так как ваш очень просто выложен. – Chiperific

Смежные вопросы