मेरे पास रूबी में एक स्ट्रिंग है जिस पर मैं अग्रणी और पिछली सफेद जगह को हटाने के लिए स्ट्रिप विधि को बुला रहा हूं। जैसेरूबी चेकिंग विधि से पहले शून्य अगर
s = "12345 "
s.strip
लेकिन अगर स्ट्रिंग खाली है मैं निम्नलिखित त्रुटि मिलती है।
NoMethodError: अपरिभाषित विधि `स्ट्रिप 'शून्य के लिए: NilClass
मैं अगर मूल्य पट्टी विधि कॉल करने से पहले नहीं के बराबर है तो क्या सबसे आसान तरीका है की जाँच करने के रूबी 1.9 का उपयोग कर रहा हूँ?
अद्यतन:
मैं एक सरणी में एक तत्व पर इस कोशिश की, लेकिन एक ही समस्या है:
data[2][1][6].nil? ? data[2][1][6] : data[2][1][6].split(":")[1].strip
इसे एक तरफ या अन्य दर्जनों बार पूछा गया है: http://stackoverflow.com/questions/5429790/is-there-a-clean-way-to-avoid-calling-a-method-on- nil-in-a-nested-params-hash – tokland
मूल पोस्टर को नोट करें: जैसा कि आप दावा करते हैं, स्ट्रिंग खाली नहीं है, जो 's =" "' है, यह शून्य है। यह अभी तक मौजूद नहीं है। यदि यह खाली था तो आप इसके साथ जांच सकते हैं: 's.strip जब तक s.empty?' – three
यदि स्ट्रिंग खाली है, तो आपको वह त्रुटि नहीं मिलेगी। – sawa