【问题标题】:Converting snake case to normal sentence in Ruby在 Ruby 中将蛇案例转换为普通句子
【发布时间】:2019-05-21 13:47:24
【问题描述】:

我正在尝试将蛇形大小写的字符串转换为普通大小写(例如:“hello_world”到“Hello world”)

我对 ruby​​ 很陌生,我正在将它与 Rails 一起使用。我发现了这个问题Converting string from snake_case to CamelCase in Ruby,似乎有一个用于该用例的函数(.camelize)。有什么我可以像这样使用内置的吗?如果没有,我该如何实现?

【问题讨论】:

标签: ruby-on-rails ruby


【解决方案1】:

humanize 是你的事:

[4] pry(main)> "hello_world".humanize
"Hello world"

【讨论】:

  • 这需要 Rails。
【解决方案2】:

Rails 有一个名为titleize的方法

"hello_world".titleize # => "Hello World"

Ruby 有一个名为 capitalize 的方法

"hello_world".capitalize # => "Hello_world"

如果您希望“Hello world”只有“H”大写,请将它们结合起来(在 Rails 中)。

"hello_world".titleize.capitalize # => "Hello world"

【讨论】:

  • 这对我不起作用。当我使用 Rails 5.2 时,> "hello_world".titleize 会得到 "Hello_world"。但是.humanize 可以解决问题(见下文)。
【解决方案3】:
"hello_world".capitalize.gsub("_"," ")
=> "Hello world"

【讨论】:

    【解决方案4】:

    Rails 5 引入了一个新的upcase_first 方法: https://glaucocustodio.github.io/2016/05/19/rails-5-new-upcase-first-method/

    将此与所有下划线与空格结合起来,您应该会很好:

    text = 'hello_world'
    
    text.upcase_first.gsub('_', ' ')
    => 'Hello world'
    

    【讨论】:

    • 骆驼案不应该是这样吗? text.upcase_first.gsub('_', '')
    猜你喜欢
    • 2021-07-15
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多