Сравнение чисел в Slim - PullRequest
1 голос
/ 19 марта 2019

В Slim, как вы можете сравнить цифры?

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

- if match_percent > 50
  span.classOne
  | #{match_percent} %
- else
  span.classTwo
  | #{match_percent} %

Но ">" считается синтаксической ошибкой. Это вообще возможно? Документация для Slim абсолютно ужасна. Я нигде не могу найти информацию об этом

1 Ответ

1 голос
/ 19 марта 2019

Не видя ошибок возврата, это сложно отладить, но оно должно работать.

test.slim

doctype html
html
  head
    title Slim Examples
    meta name="keywords" content="template language"
    javascript:
      alert('Slim supports embedded javascript!')

  body
    h1 Markup examples

    #content
      p This example shows you how a basic Slim file looks.

    - if 1 < 2 
        p 1 is less than 2 
    - else
      p No items found. Please add some inventory.
        Thank you!

    div id="footer"
      | Copyright &copy; #{`Time`} #{'me'}

Запустить это из командной строки без ошибок

slimrb test.slim
#=>
<!DOCTYPE html><html><head><title>Slim Examples</title><meta 
content="template language" name="keywords" /><script>alert('Slim 
supports embedded javascript!')</script></head><body><h1>Markup 
examples</h1><div id="content"><p>This example shows you how a basic 
Slim file looks.</p></div><p>1 is less than 2 </p><div 
id="footer">Copyright &copy;  me</div></body></html>

ОБНОВЛЕНИЕ

Исходя из вашего комментария выше:

undefined method `>' for nil:NilClass

означает, что все, что вызывается в левой части > в ruby, возвращает ноль.Так что ваша ошибка просто так.Так что в вашем примере вы можете исправить это с помощью интерполяции строк.

- if "#{match_percent.to_i}" > 50
  span.classOne
  | #{match_percent} %
- else
  span.classTwo
  | #{match_percent} %

Таким образом, если match_percent равно нулю, ваш оператор if все еще работает.

...