2014-11-23 3 views
2

Rails는 각 단어의 첫 글자를 대문자로 바꾸기위한 도움이되는 방법이 있습니까?Ruby On Rails에서 소문자를 대문자로 바꾸기

은 그래서

"my house is yellow" 

"My House Is Yellow" 
+0

죄송합니다. 이 방법은 여기에 'one two three four'.split.map (& : capitalize) .join (' ')을 넣습니다. – user3678471

+0

모든 단어를 대문자로 표기 할 수는 있지만 정확하게 대문자로 된 문장이 나오는 것은 아닙니다. –

답변

4

ActiveSupport는 titleize 기능을 제공 유니 코드가 안전 살펴주세요하기 위해

'привет, мир!'.titleize 
"привет, мир!" 

on unicode gem.

Unicode.capitalize('привет, мир!') 
"Привет, мир!" 

이 보석

가 제대로 유니 코드 문자를 처리하는, 그러나 그것은 titleize 방법이없는, 단지 capitalize 방법이있다.

+2

내 답변이 수락되었지만 이것이 최고의 답변입니다. 그러나 나는 나의 대답을 받아들이지 않고 받아 들일 것을 요청할 것이다. – Rubyrider

0
1.9.3-p547 :037 > string="my house is yellow" 
=> "my house is yellow" 
1.9.3-p547 :038 > string=string.split(' ') 
=> ["my", "house", "is", "yellow"] 
1.9.3-p547 :039 > string.each do |a| 
1.9.3-p547 :040 >  a.capitalize! 
1.9.3-p547 :041?> end 
=> ["My", "House", "Is", "Yellow"] 
1.9.3-p547 :042 > string 
=> ["My", "House", "Is", "Yellow"] 
1.9.3-p547 :044 > string.join(' ') 
=> "My House Is Yellow" 
1.9.3-p547 :045 > 
0

는 점에서 하나 개의 명령을 수행하는 명시 적 방법이 없습니다됩니다. 그러나 다음과 같은 방법으로 시도 할 수 있습니다.

'my house is yellow'.titleize 
=> "My House Is Yellow" 
+0

"내 집은 노란색".gsub (/ [A-Za-z '] + /, & : 대문자)이 부분을 이해하지 못합니다. – user3678471

+0

오 그 정규식 패턴 방식입니다. :) – Rubyrider

+0

Rubyrider님께 감사드립니다. – user3678471

0

그냥 carful 수 :이 하지 유니 코드 안전한 방법입니다 :

"my house is yellow".gsub(/[A-Za-z']+/,&:capitalize) 
=> "My House Is Yellow" 
"my house is yellow".split.map { |i| i.capitalize }.join(' ') 
=> "My House Is Yello"