web-dev-qa-db-fra.com

Rails seule ligne si autre déclaration

J'essaie d'écrire une seule ligne si autre déclaration dans une vue.

<%= collection.name ? collection.name : @miniature.name %>

Je veux qu'il mette collection.name s'il en existe un, sinon je veux qu'il mette @ miniature.name

14
Ossie

Pour que ce soit encore plus clair, vous pouvez utiliser les variables logiques OR et ActiveSupport'sObject#presence (pour mettre collection.name uniquement s’il existe et n’est pas vide):

<%= collection.name.presence || @miniature.name %>

Si vous souhaitez afficher collection.name s'il ne s'agit pas de nil, mais qu'il soit vide (chaîne vide ou chaîne ne contenant que des espaces), il vous suffira d'avoir:

<%= collection.name || @miniature.name %>
22
Marek Lipka

Vérifiez la présence de collection.name en premier.

<%= collection.name.present? ? collection.name : @miniature.name %>
25
davegson

Pourriez-vous pas

<%= collection.name ||= @minature.name %>

A ceux qui ont voté vers le bas - Définissez la variable Ruby si elle n’est pas déjà définie

0
Richard Peck