rob*_*rob 5 ruby string ruby-on-rails
什么Ruby或Rails的DSL将格式的字符串"mccdougal"
来"McDougal"
,并在同一时间离开的字符串"McDougal"
作为是什么?
传递titleize
给"McDougal"
以下结果:
"McDougal".titleize # => "Mc Dougal"
Run Code Online (Sandbox Code Playgroud)
据我所知,没有一个可以处理这种情况的Rails助手.这是一个非标准的边缘情况,需要特殊处理.但是,您可以创建自定义字符串变形.你可以在初始化器中删除这段代码:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.human /mcdougal/, 'McDougal'
end
Run Code Online (Sandbox Code Playgroud)
然后当你打电话时"mcdougal".humanize
,你会得到"McDougal"
你不会找到能正确格式化这样的名称的东西。原因是因为McDougal中的M和D大写的原因是一个任意的区域性的东西。我能想到做类似事情的唯一方法是使用查找表。我想说,以编程方式获得的最好结果是"mcdougal".capitalize
=>“Mcdougal”。我认为你不能也不应该猜测区域大小写。
然而,如果您正在为爱尔兰人制作一个应用程序,那么它绝对需要完成。我会制作一个查找表来解决这个问题。这很乏味,但你会发现有限数量的案例。