Rails однострочный оператор if else
Я пытаюсь написать одну строку, если инструкция else в представлении.
<%= collection.name ? collection.name : @miniature.name %>
Я хочу, чтобы он помещал collection.name, если он существует, иначе я хочу, чтобы он помещал @miniature.name
Ответы
Ответ 1
Чтобы сделать его еще более понятным, вы можете использовать логические OR
и ActiveSupport's
Object#presence
(поставить collection.name
только в том случае, если он существует и isn ' t blank):
<%= collection.name.presence || @miniature.name %>
Если вы хотите отображать collection.name
, если он не nil
, но он пуст (пустая строка или строка, содержащая только пробелы), будет достаточно:
<%= collection.name || @miniature.name %>
Ответ 2
Сначала проверьте наличие collection.name
.
<%= collection.name.present? ? collection.name : @miniature.name %>
Ответ 3
Не могли бы вы
<%= collection.name ||= @minature.name %>
Для тех, кто downvoted - Установите Ruby-переменную, если она еще не определена