Как использовать троичный оператор для галочки в хамле? - PullRequest
0 голосов
/ 28 декабря 2018

Я не совсем понимаю, как использовать синтаксис haml для троичного оператора, чтобы проверить, установлен флажок или нет.У меня есть столбец color_id, в котором хранятся значения, на основе которых установлен флажок.Ниже приведен мой код:

  .dress_color
    .form-group
    .checkbox.checkbox-primary.color_id
     = f.check_box :color_id, {}
     %label= t('.dark color')

    - if f.object.long_dress_selected?
          ...............
    - else
      = f.check_box, checked: true ? ('color_id: black') : ('color_id: white')

Я хочу проверить, установлен флажок 'dark_color' или нет, в другой части условия if-else.То есть, если флажок установлен, color_id должен быть установлен как «черный», иначе он должен быть установлен как «белый».Но приведенный выше код показывает ошибку как:

SyntaxError -html.haml:19: syntax error, unexpected tLABEL, expecting '='
_false(( f.check_box, checked: true ? ('color_id
                              ^:

Как проверить, установлен ли флажок или нет с помощью троичного оператора?

Заранее спасибо.

РЕДАКТИРОВАТЬ: я попробовал синтаксис

f.check_box (color_id :, {}, checked_value = "черный", unchecked_value = "белый")

но выдало ошибку как:

syntax error, unexpected ','
x(color_id:, {}, checked_value = "black", unch
           ^
file1.html.haml:40: syntax error, unexpected ')', expecting tSTRING_DEND
));}\n", 0, false);end;_hamlout.

1 Ответ

0 голосов
/ 28 декабря 2018

check_box(method, options = {}, checked_value = "1", unchecked_value = "0")

Возвращает тег-флажок, предназначенный для доступа к указанному атрибуту. Дополнительные параметры входного тега можно передать в виде хэша с параметрами.Check_value по умолчанию равно 1, в то время как unchecked_value по умолчанию установлено в 0, что удобно для логических значений.

в вашем случае

f.check_box(color_id:, {}, checked_value ="black", uchhecked_value = "white")

См. Ссылку на документацию rails здесь

...