Rails неортодоксальное именование моделей с аббревиатурами - PullRequest
13 голосов
/ 31 октября 2009

В приложении, которое я создаю, я храню файл XML в своей базе данных, используя ассоциацию acts_as_tree. Я хотел бы назвать класс XMLElement, но это сбивает с толку, так как использование заглавных букв нестандартно. Он ищет XMLElement из имени файла xml_element.rb. Я попытался изменить имя файла на x_m_l_element.rb, чтобы заставить его думать, что «XML» - это на самом деле два слова, но это тоже не сработало. Стоит ли просто смириться с этим и использовать имя XmlElement вместо более идеального XMLElement, или есть лучший способ обойти эту проблему?

Ответы [ 3 ]

32 голосов
/ 18 февраля 2014

Добавьте следующее к config/initializers/inflections.rb.

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.acronym 'XML'
end

Теперь запущенный $ rails g model XMLElement… создаст класс с именем XMLElement в файле с именем xml_element.rb и связанной таблицей xml_elements.

11 голосов
/ 31 октября 2009

Соглашение по конфигурации человека. Смирись.

2 голосов
/ 31 октября 2009

Да, вы должны использовать XmlElement.

Не только для этого примера, но и для каждого аспекта приложения, которое оно никогда не окупит, чтобы нарушить соглашения. Под капотом Rails происходит так много магии, что оно того не стоит.

...