使Hello World
之类的字符串成为hello_world
的Ruby方法是什么。
答案 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("","")。下划线