Penso che il suggerimento di Odin di utilizzare un parziale sia probabilmente il migliore nella maggior parte delle situazioni.
Tuttavia, come una soluzione alternativa, ho trovato a thread dove Nathan Weizenbaum ha suggerito la definizione di questo metodo:
def haml_tag_if(condition, *args, &block)
if condition
haml_tag *args, &block
else
yield
end
end
Qualunque sia nel blocco sarebbe sempre essere resa, ma il tag involucro apparirebbero o meno in base alla condizione.
Si potrebbe usare come segue:
- haml_tag_if(planning_to_mail?, :div, :id => 'envelope') do
%p I'm a letter
Se planning_to_mail?
viene valutata true
, si otterrebbe:
<div id="envelope">
<p>I'm a letter</p>
</div>
Se si valuta false
, si otterrebbe:
<p>I'm a letter</p>
Ha lanciato l'idea di aggiungere questo a Haml::Helpers
, ma quello doesn't appear to have happened yet.
fonte
2011-12-21 20:18:28
Non sono sicuro di come sia correlato all'HTML se è HAML ... – element119
Questo è un duplicato di: http://stackoverflow.com/questions/8636401/haml-create-container-element-only- if-condition-is-true –