लूप के अंत में ऑब्जेक्ट को प्रिंट करने से रोकें कंसोल को रोकें


84

अगर मैं कहता हूं, किसी दिए गए मॉडल के सभी उदाहरणों के माध्यम से लूप करें और प्रत्येक से कुछ आउटपुट करें, तो अंत में, irb अभी भी पूरे ऑब्जेक्ट को प्रिंट करेगा।

यदि वस्तु सैकड़ों पंक्तियों को समाप्त करती है, तो इससे पहले कि मैं वास्तव में क्या देख रहा हूं, यह देखने के लिए एक लंबा रास्ता तय करना होगा। क्या रेल्स कंसोल में इसे निष्क्रिय करने का कोई तरीका है?

जवाबों:


109

यदि आप सामान्य रूप से प्रतिध्वनि को अक्षम नहीं करना चाहते हैं, तो आप एक कमांड लाइन में कई भाव भी कह सकते हैं। केवल अंतिम अभिव्यक्ति का आउटपुट प्रदर्शित किया जाएगा।

big_result(input); 0

3
यह वास्तव में मैं क्या चाहता था।
dsp_099

3
मैं अक्सर करते हैंbig_result(input); nil
nroose

101

कॉल करें conf.echo = falseऔर यह रिटर्न वैल्यू प्रिंट नहीं करेगा। यह किसी भी आईआरबी सत्र के लिए काम करता है, न कि केवल रेल कंसोल।

यदि आप इसे स्थायी बनाना चाहते हैं, तो इसे अपने irb config में जोड़ें।

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc

यदि आप चाहते हैं कि यह हमेशा डिफ़ॉल्ट रूप से हो तो आप क्या करेंगे?
पीटर बर्ग

@Accipheran मुझे लगता है कि इसे रेल्स इनिशियलाइज़र में डालने से काम चल जाएगा।
लूलालाल

प्रतिक्रिया के लिए धन्यवाद, मैंने वास्तव में पाया कि सिर्फ लाइन फेंकना IRB.conf[:ECHO] = false, मेरी .irbrc फ़ाइल में इसका ध्यान रखा गया। मेरे सभी इरब सत्रों में वह भी गूंज में बदल जाता है, लेकिन मैं इसके साथ ठीक हूं।
पीटर बर्ग

40

अस्थायी रूप से कंसोल को रिटर्न वैल्यू को प्रिंट करने से रोकने के लिए आप nilअपने लूप या फ़ंक्शन के अंत में एक स्टेटमेंट जारी कर सकते हैं , लेकिन रिटर्न को दबाने से पहले।

record.each do |r|
  puts r.properties
end; nil

या यह एक नंबर भी हो सकता है, अगर आप टाइपिंग कम करना चाहते हैं। लेकिन यह परिदृश्यों में भ्रामक हो सकता है, जिसके बारे में मैं सोच भी नहीं सकता।

record.each do |r|
  puts r.properties
end; 0

आप सबसे अच्छे हो!
बीमारराम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.