Myślę, że sugestia odina, aby użyć częściowego, jest prawdopodobnie najlepsza w większości sytuacji.
Jednakże, jako rozwiązanie alternatywne, stwierdziliśmy a thread gdzie Nathan Weizenbaum sugeruje definiowaniu tego sposobu:
def haml_tag_if(condition, *args, &block)
if condition
haml_tag *args, &block
else
yield
end
end
co jest w blok, który zawsze renderowany, a znacznik owijania będzie się lub nie opiera pod warunkiem.
by go użyć w następujący sposób:
- haml_tag_if(planning_to_mail?, :div, :id => 'envelope') do
%p I'm a letter
Jeśli planning_to_mail?
ocenia true
, można uzyskać:
<div id="envelope">
<p>I'm a letter</p>
</div>
Jeśli ocenia false
, można uzyskać:
<p>I'm a letter</p>
Przedstawił pomysł dodania tego do Haml::Helpers
, ale to doesn't appear to have happened yet.
Nie jestem do końca pewien, jak to jest związane z HTML, jeśli jest to HAML ... – element119
To jest duplikat: http://stackoverflow.com/questions/8636401/haml-create-container-element-only- jeśli-warunek-jest-prawdziwy –