Rails'in bir dizenin ilk karakterini büyük harfle yazmasını ve diğerlerini olduğu gibi bırakmasını sağlamaya çalışıyorum. "New York'luyum" un "New Yorkluyum" a dönüştüğü bir problemle karşılaşıyorum.
İlk karakteri seçmek için hangi yöntemi kullanırdım?
Teşekkürler
DÜZENLEME: Macek'in önerdiği şeyi uygulamaya çalıştım, ancak "tanımsız bir yöntemden` `büyük harf kullan '' hatası alıyorum. Kod, büyük harf satırı olmadan iyi çalışır. Yardım için teşekkürler!
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
DÜZENLEME 2: Çalışıyor. Yardım için teşekkürler!
DÜZENLEME 3: Bekle, hayır yapmadım ... İşte liste modelimde bulunanlar.
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
DÜZENLEME 4: Macek'in düzenlemesini denedim ve hala tanımlanmamış bir yöntem `` büyük harfle yazılıyor '' hatası alıyorum.Neyi yanlış yapıyor olabilirim?
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
DÜZENLEME 5: Bu garip. Aşağıdaki satırı kullanarak tanımsız yöntem hatasından kurtulabiliyorum. Sorun, ilk harfi bir sayıyla değiştiriyor gibi görünmesidir. Örneğin, yerine aktifleştirilmesi y de You , bu döner y bir 121 içine
self.title[0] = title[0].to_s.capitalize
EDIT 3
2. satırı ile başlamalısınızself.title =
. Ayrıca, 3 satırın hepsinde, yalnızca (eşittir işaretinin)self.title
solunda ihtiyacınız vardır=
. Diğer yerlerde sadece kullanabilirsiniztitle
. Bir örnek için cevabımdaki düzenlemeye bakın.