Руби короче, ЕСЛИ еще короче? - PullRequest
0 голосов
/ 12 мая 2019

У меня есть некоторый код:

<%= name ? name : 'no name' %>

Таким образом, он печатает имя, а если имени нет, он печатает «нет имени».Так как мне все еще нужно дважды написать имя переменной, мне было интересно, есть ли еще более короткий путь?

Если переменная, то выведите ее, иначе напечатайте что-нибудь еще.

1 Ответ

3 голосов
/ 12 мая 2019

Да, есть. Попробуйте это

<%= name.presence || 'no name' %>

Если name пусто, это выражение оценивается как 'no name', в противном случае - значение name.

Обратите внимание, что presence - это метод рельсов.

Как кто-то указал, если вы хотите напечатать 'no name', только если name равно nil (или false, даже если это, вероятно, не так), этого достаточно

<%= name || 'no name' %>

в противном случае, если вы хотите напечатать 'no name', даже если name - пустая строка, мой первоначальный ответ сработает

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