制作像'Hello World'这样的字符串的Ruby方法就像'hello_world'

时间:2011-04-19 16:59:14

标签: ruby

使Hello World之类的字符串成为hello_world的Ruby方法是什么。

9 个答案:

答案 0 :(得分:35)

您不需要Rails助手。你可以用纯红宝石做到。

'Hello World'.downcase.tr(' ', '_')
# => hello_world

答案 1 :(得分:6)

如果你想用Rails方法做,你也可以这样做:

在Rails 4中:

"Hello World".parameterize('_')
=> "hello_world"

或(在Rails 5中):

"Hello World".parameterize(separator: '_')
=> "hello_world"  

我认为这就是@DGM的想法。

Rails 4参考: http://guides.rubyonrails.org/v4.2/active_support_core_extensions.html#parameterize https://apidock.com/rails/String/parameterize

Rails 5参考: http://api.rubyonrails.org/classes/String.html#method-i-parameterize

答案 2 :(得分:3)

这应该这样做:

'Hello World'.gsub(/( )/, '_').downcase!

答案 3 :(得分:3)

只需添加其他答案:

'Hello World'.split.join('_').downcase
  => 'hello_world'

答案 4 :(得分:2)

'Hello World'.sub(' ', '_').downcase!
=> 'hello_world'

答案 5 :(得分:1)

“Hello World”.downcase.split.join(“_”)

答案 6 :(得分:1)

str = 'Hello World'
str.downcase!.tr!(' ','_')
p str #=> hello_world

答案 7 :(得分:1)

是的,所有这些方式都可以满足您的需求而无需使用rails,但为了回答实际问题,rails提供了underscore

http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-underscore

答案 8 :(得分:0)

" Hello World" .gsub("","")。下划线