Я намагаюся змусити Рейлів використовувати великі літери першого рядка, а всіх інших залишити такими, якими вони є. У мене виникає проблема, коли "я з Нью-Йорка" перетворюється на "Я з Нью-Йорка".
Який метод я б використав для вибору першого символу?
Дякую
EDIT: Я намагався реалізувати те, що запропонував 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: Діє. Дякую за допомогу!
EDIT 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
EDIT 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
EDIT 5: Це дивно. Я можу позбутися від невизначеної помилки методу за допомогою рядка нижче. Проблема полягає в тому, що начебто перша літера замінюється цифрою. Наприклад, замість того, щоб використовувати величину y в Тобі , вона перетворює y на 121
self.title[0] = title[0].to_s.capitalize
EDIT 3
, потрібно починати рядок 2self.title =
. Крім того, для всіх 3 рядків вам потрібно лишеself.title
зліва від=
знака (рівний знак). В інших місцях ви можете просто користуватисяtitle
. Для прикладу дивіться редагування моєї відповіді.