ruby builder: не может генерировать XML-теги, такие как <fu-ba: r>
Hy Фолкс У меня возникла проблема, что я должен создать XML в ruby с помощью builder, работающего на сервере sinatra. Xml заполнен тегами xml, такими как этот:
<fu-ba:r test="test1" source="h1">
somthing
</fu-ba:r>
теперь я не знаю, как заставить строителя создать тег, подобный этому (атрибуты не проблема). Я старался:
xml.fu-ba:r(......)
xml."fu-ba:r"(.......)
xml. << "fu-ba:r"(......)
Каждая идея или решение очень поможет, спасибо, ребята
1 ответ
Решение
Идентификаторы Ruby состоят из алфавитов, десятичных цифр и символа подчеркивания и начинаются с алфавита (включая подчеркивание). Нет ограничений на длину идентификаторов Ruby.
Так как идентификаторы ruby не позволяют использовать специальные символы, в конструкторе есть метод tag!
для этой цели.
Например
x.tag!("fu-ba:r") {
x.text! "something"
}
Выходы
# <fu-ba:r>
# something
# </fu-ba:r>