Я создаю инструмент, который генерирует динамический XML. В результате мои модели имеют довольно общие имена:
Project
has_many :Groups
Group
has_many :Items
has_many :Groups
belongs_to :Project
Item
has_many :Params
belongs_to :Group
Param
belongs_to :Project
belongs_to :Group
belongs_to :Item
Поэтому, когда я собираю xml из контроллера проекта, имя узла проекта является корневым узлом xml. Но я не хочу, чтобы это называлось «проект». Я хочу, чтобы узел был таким, каким является значение @ project.params ['name'].
Проблема, с которой я столкнулся, состоит в том, что структура строителя делает это трудным ... Когда я делаю:
xml.project do
~some code
end
... В качестве имени корневого узла всегда будет создаваться «проект». Я не могу найти способ переопределить его, чтобы использовать другое имя. Я надеялся, что что-то вроде следующего будет работать:
xml.send(@project.params.name) {
...some code
}
.. но это, очевидно, не работает. Поэтому я пытаюсь найти способ присвоить псевдонимы именам элементов, которые настроены в моей модели params. Любые предложения будут с благодарностью.