Plusieurs de mes partiels peuvent être rendus dans deux "modes". Si full_display
est false
, je ne rends pas plusieurs champs. Pour rendre les choses faciles, je voulais faire un des "modes" par défaut - si full_display
n'est pas défini, traitez-le comme false
. Je suis venu avec ce code:Création d'aides de portée dynamique dans Rails
(((not defined?(full_display).nil?) && full_display) || false)
Beaucoup de choses à se déplacer. Ce serait bien de le mettre à l'intérieur d'une aide ou de quelque chose, mais puisque Ruby n'a qu'une portée lexicale, je ne vois pas de bonne façon de le faire.
Les mauvaises idées que je l'ai déjà essayé:
- sur le dessus de la partie et faire
<% display = long code that is above %>
utiliser l'affichage dans le code, mais la création de variables locales dans une vue semble mauvaise et doit être copié dans tous les partiel en utilisantfull_display
. - envelopper dans une chaîne, le mettre dans une aide et utiliser eval (display_helper) dans la vue, mais évidemment cela crée des problèmes de sécurité.
C'est beaucoup mieux que mon code, merci! Avoir des assistants de portée dynamique serait encore mieux (et plus puissant) cependant. –