是否有任何现成的函数将驼峰案例字符串转换为下划线分隔字符串?
我想要这样的东西:
"CamelCaseString".to_underscore
Run Code Online (Sandbox Code Playgroud)
返回"camel_case_string".
...
为什么titlecase这个名字搞得一团糟?我有:
John Mark McMillan
Run Code Online (Sandbox Code Playgroud)
它变成了:
>> "john mark McMillan".titlecase
=> "John Mark Mc Millan"
Run Code Online (Sandbox Code Playgroud)
为什么在姓氏上添加了空格?
基本上我在我的模型中有这个:
before_save :capitalize_name
def capitalize_name
self.artist = self.artist.titlecase
end
Run Code Online (Sandbox Code Playgroud)
我试图确保所有名称都是数据库中的标题,但是在具有camelcase名称的情况下,它会失败.任何想法如何解决这一问题?
我刚读了这个答案使用Ruby将大写字符串转换为title-case.
有以下代码行
"abc".split(/(\W)/).map(&:capitalize).join
Run Code Online (Sandbox Code Playgroud)
到底是&:capitalize什么?在我把它变成irb之前,我会告诉你,这不是有效的ruby语法.它必须是某种Proc对象,因为Array#map正常需要一个块.但事实并非如此.如果我把它单独放入irb,我会得到syntax error, unexpected tAMPER.