,你可以只使用.titleize
這樣"i want to make the first letter of each work into a cap".titleize
您可以瞭解更多有關titleize從apidocks
titleize(字)公共
大寫的所有單詞,並替換某些字符的字符串創造一個更好看的標題。 titleize是爲了創造漂亮的輸出。它不在Rails內部使用。
titleize也被視爲titlecase的別名。
例子:
"man from the boondocks".titleize # => "Man From The Boondocks"
"x-men: the last stand".titleize # => "X Men: The Last Stand"
"TheManWithoutAPast".titleize # => "The Man Without A Past"
"raiders_of_the_lost_ark".titleize # => "Raiders Of The Lost Ark"
這實際上是如何工作的
# File activesupport/lib/active_support/inflector/methods.rb, line 115
def titleize(word)
humanize(underscore(word)).gsub(/\b('?[a-z])/) { $1.capitalize }
end
實際上保持 「 - 」 的作品中,我們可以添加一個新的方法String類這樣的。
# ./lib/core_ext/string.rb
class String
#"goyette-xyz-is wide road".titleize_with_dashes#=> "Goyette-xyz-is Wide Road"
def titleize_with_dashes
humanize.gsub(/\b('?[a-z])/) { $1.capitalize }
end
end
'「goyette-XYZ-是寬的道路」。 split('').map(&:capitalize).join('')' – apneadiving
計算機應該如何知道'Goyette','Wide'和'Road'是應該大寫的單詞,以及'xyz'和'是'不是嗎?您是否打算擁有數據庫或人工智能作爲此方法的一部分?告訴我們你使用的是什麼樣的人工智能。否則,這個問題沒有完全說明。 – sawa
@sawa我認爲OP希望將連字符部分('goyette-xyz-is')當作一個單詞處理。 – Stefan