Saya mencoba membuat Rails memanfaatkan karakter pertama string, dan membiarkan yang lainnya apa adanya. Saya mengalami masalah saat "saya dari New York" diubah menjadi "Saya dari new york."
Metode apa yang akan saya gunakan untuk memilih karakter pertama?
Terima kasih
EDIT: Saya mencoba menerapkan apa yang disarankan macek, tetapi saya mendapatkan kesalahan "metode tidak terdefinisi" memanfaatkan " . Kode berfungsi dengan baik tanpa garis huruf kapital. Terima kasih untuk bantuannya!
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
EDIT 2: Berhasil. Terima kasih untuk bantuannya!
EDIT 3: Tunggu, tidak, saya tidak ... Inilah yang saya miliki dalam model daftar saya.
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: Mencoba edit macek, dan masih mendapatkan kesalahan metode `` capitalize '"yang tidak ditentukan . Apa yang mungkin saya lakukan salah?
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: Ini aneh. Saya dapat menyingkirkan kesalahan metode tidak ditentukan dengan menggunakan baris di bawah ini. Masalahnya adalah sepertinya mengganti huruf pertama dengan angka. Misalnya, alih-alih menggunakan huruf besar y pada Anda , ini mengubah y menjadi 121
self.title[0] = title[0].to_s.capitalize
EDIT 3
, Anda harus memulai baris 2 denganself.title =
. Juga, pada semua 3 baris, Anda hanya perluself.title
di sebelah kiri=
(tanda sama dengan). Di tempat lain Anda bisa menggunakantitle
. Lihat edit jawaban saya sebagai contoh.