मैं एक स्ट्रिंग के पहले चरित्र को कैपिटल करने के लिए रेल प्राप्त करने की कोशिश कर रहा हूं, और अन्य सभी को वैसे ही छोड़ देता हूं। मैं एक ऐसी समस्या में भाग रहा हूँ जहाँ "मैं न्यूयॉर्क से हूँ" में बदल जाता है "मैं नए यॉर्क से हूँ।"
पहला चरित्र चुनने के लिए मैं किस विधि का उपयोग करूंगा?
धन्यवाद
संपादित करें: मैंने जो भी सुझाव दिया था, उसे लागू करने की कोशिश की, लेकिन मुझे एक "अपरिभाषित विधि` पूंजीकृत ' त्रुटि मिल रही है । कोड कैपिटल लाइन के बिना ठीक काम करता है। सहायता के लिए धन्यवाद!
def fixlistname!
self.title = self.title.lstrip + (title.ends_with?("...") ? "" : "...")
self.title[0] = self.title[0].capitalize
errors.add_to_base("Title must start with \"You know you...\"") unless self.title.starts_with? 'You know you'
end
संपादित 2: यह काम कर रहा है। सहायता के लिए धन्यवाद!
संपादित करें 3: रुको, नहीं मैंने नहीं किया ... यहाँ है कि मैं अपनी सूची मॉडल में क्या है।
def fixlistname!
self.title = self.title.lstrip + (title.ends_with?("...") ? "" : "...")
self.title.slice(0,1).capitalize + self.title.slice(1..-1)
errors.add_to_base("Title must start with \"You know you...\"") unless self.title.starts_with? 'You know you'
end
संपादित करें 4: मैस्क के संपादन की कोशिश की, और अभी भी एक अपरिभाषित विधि प्राप्त कर रहा है `पूंजीकरण '" त्रुटि। मैं क्या गलत कर सकता हूं?
def fixlistname!
self.title = title.lstrip
self.title += '...' unless title.ends_with?('...')
self.title[0] = title[0].capitalize
errors.add_to_base('Title must start with "You know you..."') unless title.starts_with?("You know you")
end
EDIT 5: यह अजीब है। मैं नीचे पंक्ति का उपयोग करके अपरिभाषित विधि त्रुटि से छुटकारा पाने में सक्षम हूं। समस्या यह है कि यह पहले अक्षर को एक नंबर से बदल देता है। उदाहरण के लिए, आप में y को बड़ा करने के बजाय , यह y को 121 में बदल देता है
self.title[0] = title[0].to_s.capitalize
EDIT 3
, आपको पंक्ति 2 के साथ शुरू करने की आवश्यकता हैself.title =
। इसके अलावा, सभी 3 लाइनों पर, आपको केवलself.title
एक=
(समान चिह्न) के बाईं ओर की आवश्यकता होती है। अन्य स्थानों पर आप बस उपयोग कर सकते हैंtitle
। एक उदाहरण के लिए मेरे उत्तर पर संपादित देखें।