Почему мое заявление if тогда не работает в ERB?

0

Все, что я хочу, если вывести "test", если для all_day установлено значение "true",

Вот мой код:

<%= event.all_day == "true" ? 'test' : '' %>

Если у меня просто есть <%= event.all_day %> он работает, и он выводит либо true, либо false. Итак, я не уверен, что я делаю неправильно здесь.

Теги:

4 ответа

1
Лучший ответ

Просто убедитесь, что вы хотите использовать строку "true", а не логическое значение true, правильно?

  • 1
    О, это ценность. Спасибо, что задали мне этот вопрос, вот где у меня возникла проблема.
  • 0
    Ах, @DVG попал сюда за 8 секунд до меня. Извините, я не заметил.
2

Ты пробовал:

<%= event.all_day == true ? 'test' : '' %>

Вероятно, он оценивает строку "true" в отношении логической истины, которая оценивает false и возвращает пустую строку.

2

Вы сравниваете значение event.all_day boolean с String:

true == 'true'
#=> false

Правильный подход:

<%= event.all_day ? 'test' : '' %>
  • 0
    Я просто понял, что у меня есть истина как строка, а не значение, в любом случае, спасибо
1

Вам просто нужно отбросить цитаты вокруг true

<%= event.all_day == "true" ? 'test' : '' %>

должно быть

<%= event.all_day == true ? 'test' : '' %>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню