Rails字符串帮助程序删除连字符和大写?

时间:2015-05-10 10:41:21

标签: ruby-on-rails ruby

我想知道是否有一个Rails辅助方法从String中删除连字符并将其大写。

例如,让我们将early-bird转换为Early bird

我愿意

"early-bird".gsub('-', ' ').capitalize

但我想知道是否有一种特定方法可以做到这一点。

4 个答案:

答案 0 :(得分:7)

正如其他人所指出的,titleize接近你想要的。但是对于您想要的确切行为,您可以使用您的代码来制作自己的帮助程序。如果这是一个视图助手,您可以将其放在帮助文件中:

# app/helpers/application_helper.rb

# my_titleize("early-bird") # => "Early bird"
def my_titleize(str)
  str.gsub('-', ' ').capitalize
end

或者如果您在模型中使用它,请制作补丁。

# lib/patches/string.rb

# "early-bird".my_titleize # => "Early bird"
class String
  def my_titleize
    gsub('-', ' ').capitalize
  end
end

然后require模型文件中的补丁文件。

答案 1 :(得分:6)

我认为.titleize是你得到的最接近的,它会把所有单词都大写,而不仅仅是第一个。

public static List<List<String>> englishWordList = new ArrayList<List<String>>(676);
static {
    for (int i = 0; i < 676; i++) {
        englishWordList.add(new ArrayList<String>());
    }
}

会给你&#34;早鸟&#34;。

请参阅:http://api.rubyonrails.org/classes/String.html#method-i-titleize

答案 2 :(得分:3)

您可以在Rails中使用titleize

"early-bird".titleize
#=> "Early Bird"

答案 3 :(得分:0)

您也可以使用tr

"early-bird".tr("-"," ").capitalize
#=> "Early bird"