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를 (A121)로
self.title[0] = title[0].to_s.capitalize
EDIT 3
2 행을self.title =
. 또한 세 줄 모두self.title
에서=
(등호) 왼쪽 에만 필요 합니다 . 다른 곳에서는title
. 예제는 내 대답에 대한 편집을 참조하십시오.