Помощник цикла Rails за некоторыми исключениями

Я использую вспомогательный метод Rails cycle() стандартным способом со строками таблицы, чтобы сделать чередующиеся строки разными цветами фона. Однако я хочу, чтобы случайный ряд или два (которые соответствуют определенным критериям) были другого, третьего цвета, не прерывая цикл.

Другими словами, мне нужны такие строки, как:

white
black
red
black
white
black
white

Вместо:

white
black
red
white
black
white

Как лучше всего это сделать?


person jrdioko    schedule 03.03.2011    source источник


Ответы (1)


Нужно сохранить его во временной переменной и вызвать цикл(), чтобы убедиться, что он актуален.

<%
class = cycle('white', 'black', :name => 'colors')
class = 'red' if should_be_highlighted
%>
<tr class="<%= class %>">

Вы можете красиво обернуть это в свой собственный помощник.

person pushcx    schedule 03.03.2011
comment
Обратите внимание: использование class в качестве имени переменной является плохой практикой в ​​большинстве языков. - person Richard Peck; 06.12.2016