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 %>