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