Как мне преобразовать последовательность слов в атрибут?

Мне нужно включить:

"First Name".some_method = "first_name"

Я думаю, я мог бы просто использовать регулярное выражение, но хотел знать, есть ли что-то лучше. Я старался constantize, а также humanizeи это в значительной степени противоположно тому, что мне нужно сделать:

"first_name".humanize = "First name"

5 ответов

"First Name".parameterize.underscore # => first_name
"First Name".gsub(/\s+/, '_').downcase
# => "first_name" 

Используйте тогда 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"
Другие вопросы по тегам