Как мне преобразовать последовательность слов в атрибут?
Мне нужно включить:
"First Name".some_method = "first_name"
Я думаю, я мог бы просто использовать регулярное выражение, но хотел знать, есть ли что-то лучше. Я старался constantize
, а также humanize
и это в значительной степени противоположно тому, что мне нужно сделать:
"first_name".humanize = "First name"
5 ответов
Используйте тогда String#tr
как показано ниже:
"First Name".tr(" ", '_').downcase
# => "first_name"
require 'active_support/core_ext'
"First Name".gsub(/\s/, '').underscore # => "first_name"
Я не смог найти единственный метод, хотя.
irb(main):017:0> "First Name".downcase.gsub(' ', '_')
=> "first_name"