मुझे लगता है कि एक आंशिक उपयोग करने के लिए ओडिन के सुझाव शायद ज्यादातर स्थितियों में सबसे अच्छा है।
हालांकि, एक वैकल्पिक समाधान के रूप में, मैं a thread जहां नाथन Weizenbaum इस विधि को परिभाषित करने का सुझाव दिया पाया:
def haml_tag_if(condition, *args, &block)
if condition
haml_tag *args, &block
else
yield
end
end
जो भी ब्लॉक में है हमेशा गाया किया जाएगा, लेकिन रैपिंग टैग आधारित प्रकट होता है या नहीं इस शर्त पर।
आप इस प्रकार के रूप में यह प्रयोग करेंगे: planning_to_mail?
का मूल्यांकन करता है
- haml_tag_if(planning_to_mail?, :div, :id => 'envelope') do
%p I'm a letter
तो true
, आप चाहते हैं:
<div id="envelope">
<p>I'm a letter</p>
</div>
यह false
का मूल्यांकन करता है, तो आप प्राप्त करेंगे:
<p>I'm a letter</p>
उन्होंने इसेमें जोड़ने का विचार जारी किया, लेकिन doesn't appear to have happened yet।
स्रोत
2011-12-21 20:18:28
मुझे सच में यकीन नहीं है कि यह एचटीएमएल से कैसे संबंधित है यदि यह हैएएमएल है ... – element119
यह एक डुप्लिकेट है: http://stackoverflow.com/questions/8636401/haml-create-container-element-only- if-condition-is-true –