Je rencontre un problème avec mon fichier index.xml.builder pour les albums photo; Je suis sûr que c'est quelque chose de simple mais ça me rend fou après ne pas trouver une solution dans les docs Builder :: XmlMarkup. Voici mon avis actuel:Rails 3 - XML Builder
xml.instruct!
xml.gallery {
@albums.each { |g|
xml.album(g.name, {:title => g.name,
:description => g.description,
:lgpath => "[PATH]",
:tnpath => "[PATH]",
:fspath => "[PATH]"})
g.pictures.each { |p|
xml.img nil, :src => "#{p.resource_file_name}"
}
}
}
Cependant, cela produit les suivants:
<gallery>
<album title="..." description="..." lgpath="..." tnpath="..." fspath="..."></album>
<img src="17112.jpg"/>
<img src="17113.jpg"/>
<img src="17114.jpg"/>
<img src="17115.jpg"/>
<album...
Comme vous pouvez le voir, je suis incapable d'obtenir les images imbriquées dans la balise </album>
. Des idées pour y arriver?
Merci d'avance.
RÉCAPITULATION (Merci à IAIN pour me mettre sur la bonne voie):
jamais sous-estimer la lecture du code source, dans ce cas Builder :: XMLBase # method_missing. La solution était de ne pas passer une chaîne pour le contenu de la balise (g.name). Voici le code que je avais besoin:
xml.instruct!
xml.gallery do
@albums.each do |g|
xml.album(:title => g.name) do
g.pictures.each do |p|
xml.img(:src => p.resource_file_name)
end
end
end
end
Merci pour votre aide. Vous avez raison en ce que j'ai manqué la balise de l'album et que, en effet, je veux imbriquer les images. Je ne peux pas identifier l'erreur de mon chemin parce que j'appelle g.pictures dans la portée du bloc de galerie. Je suis sûr que mon erreur est stupide stupide, donc je vais continuer à brancher ... – TMB
appelez le g.pictures à l'intérieur d'un bloc pour l'album et vous devriez être prêt à partir. Vous pourriez vouloir faire du nom de l'album un tag ou un attribut – iain