Что такое метод Ruby, чтобы строка типа Hello World
была похожа на hello_world
.
Ruby-метод, чтобы строка типа Hello World была похожа на 'hello_world'
Ответ 1
Вам не нужны помощники Rails. Вы можете сделать это в чистом рубине.
'Hello World'.downcase.tr(' ', '_')
# => hello_world
Ответ 2
Если вы хотите сделать это с помощью методов Rails, вы также можете:
В Rails 4:
"Hello World".parameterize('_')
=> "hello_world"
Или (в Rails 5):
"Hello World".parameterize(separator: '_')
=> "hello_world"
Я думаю, о чем думал @DGM.
Рельсы 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
Ответ 3
Это должно сделать это:
'Hello World'.gsub(/( )/, '_').downcase!
Ответ 4
Просто добавив другие ответы:
'Hello World'.split.join('_').downcase
=> 'hello_world'
Ответ 5
'Hello World'.sub(' ', '_').downcase!
=> 'hello_world'
Ответ 6
"Hello World".downcase.split.join( "_" )
Ответ 7
str = 'Hello World'
str.downcase!.tr!(' ','_')
p str #=> hello_world
Ответ 8
Да, все эти способы делают то, что вы хотите без рельсов, но чтобы ответить на реальный вопрос, рельсы обеспечивают underscore
http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-underscore
Ответ 9
"Hello World".gsub( "," "). underscore