В приложении, которое я создаю, я храню XML файл в своей базе данных с помощью ассоциации acts_as_tree. Я хотел бы назвать класс XMLElement, но это отбрасывает рельсы, поскольку капитализация нестандартна. Он ищет XMLElement из имени файла xml_element.rb. Я попытался изменить имя файла на x_m_l_element.rb, чтобы попытаться обмануть его, подумав, что "XML" - это действительно два слова, но это тоже не сработало. Должен ли я просто сосать его и использовать имя XMLElement вместо более идеального XMLElement, или есть лучший способ решить эту проблему?
Rails неортодоксальное обозначение моделей с аббревиатурами
Ответ 1
Соглашение о конфигурации человека. Отсоедините его.
Ответ 2
Добавьте в config/initializers/inflections.rb следующее.
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'XML'
end
Теперь запущенный $ rails g model XMLElement… создаст класс с именем XMLElement в файле с именем xml_element.rb и связанной таблицей xml_elements.
Ответ 3
Да, вы должны использовать XmlElement.
Не только для этого примера, но и для каждого аспекта приложения, он никогда не окупится, чтобы отклонить соглашения. Существует так много "магии", что под капотом Rails это просто не стоит.