ruby-on-rails - 如何将字符串中每个单词的首字母大写

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2 rubygems

如何在 Ruby on Rails 中将字符串中每个世界的首字母大写:

"goyette-xyz-is wide road".titleize returns "Goyette Xyz Is Wide Road".

我想要这样的输出:

"goyette-xyz is wide road".SOME-FUNCTION should return "Goyette-xyz-is Wide Road".

titleize 删除了下划线和连字符,但我想将其保留在字符串中。

最佳答案

你可以像这样使用.titleize “我想把每个作品的第一个字母变成一个大写字母”.titleize

您可以了解更多关于 titleize 的信息来自 apidocks

titleize(word) 公共(public)

将所有单词大写并替换字符串中的一些字符以创建更美观的标题。 titleize 用于创建漂亮的输出。它不用于 Rails 内部。

titleize 也被称为 as 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

为了在作品中实际保留“-”,我们可以像这样向字符串类添加一个新方法。

# ./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

关于ruby-on-rails - 如何将字符串中每个单词的首字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154369/

相关文章:

ruby-on-rails - 使用 link_to 创建新文章

javascript - 当我在 Unicorn 服务器上运行时,Websockets 在我的 Rails 应用程序中不起作用,但在瘦服务器上运行

ruby-on-rails - 工厂女孩争论错误 : Factory not registered:

html - 底部附加按钮与 div 大小不匹配

ruby-on-rails - 旧 Rails 应用程序出现奇怪的 Rails 错误 "permission denied: bin/rails"

ruby - Jekyll 的所有功能都不再起作用

ruby-on-rails-3 - SimpleCov 报告使用 Spork 运行 RSpec 测试后未在 Rails 3 应用程序中生成

ruby-on-rails - Rails 忽略收集路线并改为使用显示操作

ruby - 如何通过文件名获取常量名称

ruby-on-rails - 我可以从模型中获取表、列和类型信息吗?