Ruby或Rails DSL会将字符串"mccdougal"
格式化为"McDougal"
,同时保留字符串"McDougal"
不变?
将titleize
传递给"McDougal"
会产生以下结果:
"McDougal".titleize # => "Mc Dougal"
答案 0 :(得分:5)
据我所知,没有一个可以处理这种情况的Rails助手。这是一个非标准的边缘情况,需要特殊处理。但是,您可以创建自定义字符串变形。您可以在初始化程序中删除这段代码:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.human /mcdougal/, 'McDougal'
end
然后当您致电"mcdougal".humanize
时,您将获得"McDougal"
答案 1 :(得分:4)
你不会找到正确格式化这样名字的东西。原因是因为McDougal的M和D大写的原因是任意区域性的。我能想到做这样的事情的唯一方法是使用查找表。我会说,以编程方式得到的最好的是"mcdougal".capitalize
=> "麦克杜格尔&#34 ;.我认为你不能也不应该猜测地区资本化。
如果然而你正在为爱尔兰人制作应用程序,那绝对需要完成。我会创建一个查找表来解决问题。这很乏味,但你会发现有限数量的案例。