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