,你可以只使用.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