NoMethodError для подчеркивания - PullRequest
1 голос
/ 21 апреля 2010

Я хочу преобразовать строку

"Full Time"

до

"full_time"

Когда я использую «Full Time» .underscore в irb, это выдает ошибку

NoMethodError: undefined method `underscore' for "Full Time":String

Как я могу это исправить? Или есть какой-то другой способ получить результат, подчеркнутый выше?

Ответы [ 2 ]

5 голосов
/ 21 апреля 2010

Существует вспомогательный метод rails, который называется underscore. Если вы запустите консоль rails (скрипт / консоль), вы сможете использовать ее:

"FullTime".gsub(/\s+/,'').underscore.to_sym
:full_time 

так что я думаю, что вы должны сделать это удалить пробел и затем применить метод, описанный выше. Обратите внимание, что я добавил to_sym, чтобы показать, что это тоже возможно, но если вам это не нужно, просто удалите его.

Обратите внимание, что это вспомогательный метод rails, а не метод ruby ​​из класса String. Это будет просто работать в окружении рельсов .

1 голос
/ 21 апреля 2010

Вы можете использовать gsub и заменить все пробелы, чтобы подчеркнуть

irb(main):008:0> "Full Time".downcase.gsub(/\s+/,"_")
=> "full_time"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...