Является ли правильное подсчет Rails подчеркиванием «подчеркиванием»? - PullRequest
5 голосов
/ 27 июля 2011

Похоже, что с Rails / AR и методами Inflector, добавленными к String на ActiveSupport, я ожидал бы, что по умолчанию

Nested::ClassDerived::FromAR.name.tableize == Nested::ClassDerived::FromAR.table_name

Но на самом деле tableize вызывает underscore, а underscore фактически не подчеркивает разделитель вложенных классов ::, а заменяет его на / для создания пути. Возможно, этот метод должен называться pathify?

В любом случае, мне нужны настоящие подчеркивания. Поэтому я подумываю определить новый String метод инфлектора:

def new_inflector
  underscore.gsub('/', '_')
end

это фактически подчеркивало бы вложенную строку имени класса.

Итак, мой вопрос в том, каково правильное перегиба 'underscore', чтобы правильно и условно назвать мой новый метод инфлектора, без конфигурации. Это будет «underscoreize» (в соответствии с соглашением, установленным «tableize») или «underscorize»? Или возможно underscoreify?

Любое понимание приветствуется.

Ответы [ 2 ]

8 голосов
/ 30 июля 2011

Вы пробовали параметризоваться с подчеркиванием в качестве разделителя?

parameterize('_')
0 голосов
/ 01 августа 2018

Это сработало для меня с Ruby 2.5.0 и Rails 5.1.6 .

"Admin::Role".parameterize.underscore
#=> "admin_role"
...