Я пытаюсь заставить Rails использовать первый символ строки с заглавной буквы и оставить все остальные такими, какие они есть. Я сталкиваюсь с проблемой, когда «я из Нью-Йорка» превращается в «я из Нью-Йорка».
Какой метод я бы использовал, чтобы выбрать первый символ?
Спасибо
РЕДАКТИРОВАТЬ: Я пытался реализовать то, что предложил macek, но я получаю "неопределенный метод" прописные буквы "" ошибка. Код работает без строки с заглавными буквами. Спасибо за помощь!
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: Попробовал редактирование macek и все еще получал неопределенный метод "прописные буквы" " Ошибка. Что я мог делать неправильно?
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
РЕДАКТИРОВАТЬ 5: Это странно. Я могу избавиться от неопределенной ошибки метода, используя строку ниже. Проблема в том, что кажется, что первая буква заменяется цифрой. Например, вместо заглавных букв y в You он превращает y в 121
self.title[0] = title[0].to_s.capitalize