2011-03-19 23 views
15

के साथ एक विशेषता शामिल है, निम्न कोड काम करता है, लेकिन क्या आप मुझे बता सकते हैं कि यह करने का सही तरीका है या नहीं?खोजें कि ऑब्जेक्ट्स की एक सरणी में एक विशिष्ट मान

मैं स्थिति में ऑब्जेक्ट की श्रृंखला है और मैं अगर यह एक वस्तु जो विशेषता 'छुपा' है शामिल हैं जाँच करना चाहते हैं "झूठे 'मूल्य:

<% if positions.collect{|position| position.hidden}.include?(false) %> 
    ... 
<% end %> 
+2

यदि आप चाहें, तो इसे सरल बनाने का एक और तरीका यह है: 'if positions.map (&: hidden)। शामिल करें? (झूठी) '। (चेतावनी: यह और मूल दृष्टिकोण नीचे दिए गए उत्तरों से भिन्न व्यवहार करेगा यदि 'छिपा' विशेषता कभी भी शून्य न हो।) – antinome

उत्तर

23
<% if positions.any?{|position| !position.hidden} %> 
    ... 
<% end %> 

any? विधि

2

का उपयोग करना if positions.any? {|position| not position.hidden}

0

आप all? विधि का भी उपयोग कर सकते हैं:

<% unless positions.all? {|position| position.hidden} %> 
... 
<% end %> 
संबंधित मुद्दे