Добавьте несколько условных CSS-классов в HTML с помощью интерполяции строк Rails - PullRequest
1 голос
/ 06 октября 2019

Я использую Rails и пытаюсь условно добавить высоту div на основе параметра строки запроса. Существует четыре возможных значения параметра строки запроса v: 1, 2, 3 или 4. Когда v=3 или v=4, я хочу отобразить класс heading-row-2. В противном случае я хочу отобразить класс heading-row.

Я ищу что-то вроде этих двух:

<%= content_tag :div, class: "row #{'heading-row-2' ? (params[:v] == 3 || 4) : 'heading-row'}"%>

<div class="row <%='heading-row-2' ? (params[:v] == 3 || 4) : 'heading-row'%> ">

Обратите внимание, что мне также нужно:
-Тег 'row'.
- Чтобы добавить больше html внутри div.

1 Ответ

2 голосов
/ 06 октября 2019

Вы можете добавить heading-row в любом случае. Если параметр v равен 3 или 4, вы интерполируете значение -2 для опции класса:

<%= content_tag :div, class: "row heading-row#{'-2' if params[:v].in?(['3', '4'])}" %>

<div class="row heading-row<%= '-2' if params[:v].in?(['3', '4']) %>">

Второй способ кажется более легким для чтения.


Примечание

params[:v] == 3 || 4

Возможно, это не то, что вы ожидаете, так как это означает, что «если значение params [: v] равно 3, тогда вернуть true, иначе вернуть 4».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...