Tôi đang cố gắng để Rails viết hoa ký tự đầu tiên của một chuỗi và giữ nguyên tất cả các ký tự khác. Tôi đang gặp phải sự cố trong đó "tôi đến từ New York" bị chuyển thành "Tôi đến từ New York".
Tôi sẽ sử dụng phương pháp nào để chọn ký tự đầu tiên?
Cảm ơn
CHỈNH SỬA: Tôi đã cố gắng triển khai những gì macek đề xuất, nhưng tôi gặp lỗi "phương pháp không xác định` `capitalize '" . Mã hoạt động tốt mà không có dòng viết hoa. Cảm ơn đã giúp đỡ!
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
CHỈNH SỬA 2: Đã hoạt động. Cảm ơn đã giúp đỡ!
CHỈNH SỬA 3: Chờ đã, không, tôi không ... Đây là những gì tôi có trong mô hình danh sách của mình.
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
CHỈNH SỬA 4: Đã thử chỉnh sửa của macek và vẫn nhận được lỗi phương thức không xác định `` capitalize '" . Tôi có thể làm gì sai?
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
CHỈNH SỬA 5: Điều này thật kỳ lạ. Tôi có thể loại bỏ lỗi phương thức không xác định bằng cách sử dụng dòng bên dưới. Vấn đề là nó dường như thay thế chữ cái đầu tiên bằng một con số. Ví dụ: thay vì viết hoa chữ y trong You , nó biến chữ y thành 121
self.title[0] = title[0].to_s.capitalize
EDIT 3
, bạn cần bắt đầu dòng 2 vớiself.title =
. Ngoài ra, trên cả 3 dòng, bạn chỉ cầnself.title
bên trái một=
(dấu bằng). Ở những nơi khác, bạn chỉ có thể sử dụngtitle
. Xem phần chỉnh sửa câu trả lời của tôi để làm ví dụ.