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