Вопрос

Я уверен, что это простой вопрос для вас, гиков:

Допустим, у меня есть строка «ThisIsMyString», и я хочу отформатировать ее как «this_is_my_string», используя Ruby.

Как мне это сделать?

Мэтт

Это было полезно?

Решение

Если у вас есть доступ к ActiveSupport (как в Rails, но с возможностью внешнего использования), вы можете использовать underscore метод в Инфлекторный модуль.

"ClassName".underscore # => class_name

Другие советы

Строка класса def to_under_score (gsub (/[az]) {| p | "_" + p.downcase}) [1 ..- 1] Конец конца

"MyTestCase".to_under_score => "my_test_case"

От http://www.ruby-forum.com/topic/113697#265696

Рубиновые грани есть функция для этого:Строка#подчеркивание.Вот источник из этого:

  def underscore
    gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
  end

Если у вас есть доступ к Активная поддержка из Рельсы проект, это так же просто, как

require 'activesupport'
"ThisIsMyString".underscore
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top