पतला गतिशील सशर्त वर्ग [बंद]


100

बस अन्य डेवलपर्स की मदद करने के लिए, क्योंकि एसओ पर कोई समान प्रश्न नहीं है।

div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)

जवाबों:


143

नीचे दिए गए उदाहरण देखें:

div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)

अन्य विशेषताओं के लिए गतिशील मूल्यों को निर्दिष्ट करने के लिए समान दृष्टिकोण का उपयोग किया जा सकता है।


2
आप कई स्थितियों के लिए ऐसा कैसे करेंगे?
मैक्सिम जुबेरव

अपने जवाब के लिए टिप्पणियों में नीचे देखें।
सर्गेई अलेक्सेव

3
यह एक वर्ग को भी जोड़ सकता है, जैसे: div.councilor class=(councilor.retired? ? "retired" : "") उत्पन्न करता है:div.councilor.retired
टेरा एशले

20

मैं वर्गों और शून्य तत्व की सरणी का उपयोग करता हूं यदि सूची में वर्ग को शामिल करने की आवश्यकता नहीं है, तो शून्य तत्वों को हटाने के लिए कॉम्पैक्ट सरणी और अंत में एक साथ जुड़ें।

div class=(["cday", "col-md-1", day.day == 1 ? "col-md-offset-#{day.cwday-1}" : nil].compact.join(' '))

12

यदि आपके पास कई स्थितियां हैं, तो मैं अभी कुछ कर रहा हूं

div class=(('foo ' if is_foo?) + ('bar' if is_bar?))

हालांकि मुझे लगता है कि अगर यह is_bar है तो एक कलंक है? गलत और जेनरेट किए गए HTML परिणामों को वापस लौटाएं

<div class="foo "></div>

(धब्बा के बाद खाली चरित्र है foo)। अगर किसी के लिए एक समाधान था कि भयानक होगा।


7
String#rstripइस स्थिति में 2 शर्तों के साथ प्रयास करें div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip):। या div class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))कई स्थितियों के लिए।
सर्गेई अलेक्सेव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.