Как сделать строку цветной с помощью activeadmin на основе условия if else

#ruby-on-rails #activeadmin

#ruby-on-rails #activeadmin

Вопрос:

Я новичок в Ruby on Rails. Я использую Active Admin для своего приложения. Я хочу раскрасить строку, если условие истинно, а какой-то другой цвет является условием false.

 tr.odd, tr.even {
    amp;.test {
        td.col {
            background-color: red;
        }
    }
}
  

Я хочу применить это условие для тестового класса. Есть ли какой-либо способ выполнить эту задачу?

Ответ №1:

Я бы рекомендовал иметь два разных класса CSS, а затем применять разные классы в ваших представлениях ERB, например, так:

 <tr class="<%= condition ? 'test' : 'default' %>">
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>
  

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

 # application_helper.rb
def css_class_for(condition)
  if condition
    'test-css-class'
  else
    'other-css-class'
  end
end

# view
<tr class="<%= css_class_for(true) %>">
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr