2014-09-28 4 views
1

Я использую RXML Ruby On Rails для создания фида Sitemap для Google.Как избежать точки с запятой в ruby ​​rxml

Google требует, чтобы images are marked up with the image name space, требуя элемент, который имеет точку с запятой в нем так:

<image:image> 
    <image:loc>http://example.com/image.jpg</image:loc> 
</image:image> 

Если я использую

xml.image:loc => "something" 

Я получаю

<image:image> 
    <image loc="something"/> 
</image:image> 

Если я использую

xml.image:loc("something") 

я

compile error 
/home/vagrant/website/app/views/feeds/sitemap.rxml:36: syntax error, unexpected '(', expecting kEND 
              xml.image:loc("something") 

Если я пытаюсь это

xml.image:loc do 
    puts "something" 
end 

Я получаю это

<image:image> 
    <image:loc> 
    </image:loc> 
</image:image> 
+0

У меня нет достаточно прав для добавления RXML в качестве тега. – xiatica

ответ

3

шаблоны Rxml фактически builder

Если первый аргумент в метод магической метки символ, то это означает, что строитель использует имя метода как пространство имен и символ как имя тега. Например

xml.image(:loc, "something") 

будет производить

<image:loc>something</image:loc> 

Это здравомыслящий при прохождении блока тоже:

xml.image(:image) do |xml| 
    xml.image(:loc, "http://example.com") 
end