JeuWeb - Crée ton jeu par navigateur
[Rails] Servir du SVG qui utilise des données d'ActiveRecord - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Rails] Servir du SVG qui utilise des données d'ActiveRecord (/showthread.php?tid=5735)



[Rails] Servir du SVG qui utilise des données d'ActiveRecord - Maz - 09-10-2011

Bonjour,
je fait appel à votre aide car j'aimerais généré un SVG d'après des données d'ActiveRecord, et je n'ai ABSOLUMENT aucune idée par ou commencer.... J'ai chercher des gem qui me mâcherait le travail, mais les gems prévu pour le SVG sont essentiellement faites pour des graphiques en barres et autres présentation d'analyses.

J'ai besoin de charger des images externes (.svg) et j'ai besoin de donnée provenant d'ActiveRecord, à ce sujet, je ne vois pas comment faire pour générer une image à partir d'ActiveRecord étant donnée que l'image est "externe" à l'application?

Merci pour tout élément de réponse, car là je suis vraiment pommé.


RE: Rails: Génération d'un SVG utilsant des ActiveRecord. - Sephi-Chan - 09-10-2011

Le SVG n'est qu'un document XML. Il te suffit donc d'avoir des actions de contrôleur qui te servent du SVG. Les guides de Rails ont déjà dû t'apprendre à faire ça, n'est-ce pas ?

Il faudrait que tu détailles plus la partie qui te pose problème pour pouvoir t'aider plus efficacement.


RE: Rails: Génération d'un SVG utilsant des ActiveRecord. - Maz - 09-10-2011

La partie qui me posait problème est que je ne voyais pas du tout comment cela pouvais fonctionner et je savais pas ou poser le premier bout de code. J'ai finis par trouver ceci qui semble répondre à mes questions.

Y'a plus qu'à essayer... Merci.


RE: Rails: Génération d'un SVG utilsant des ActiveRecord. - Sephi-Chan - 09-10-2011

Avec le système de rendu de Rails, tu peux faire en sorte que l'adresse http://example.org/users/42-maz.svg te serve un document SVG contenant ce que tu veux. Après tout, ce n'est qu'une vue comme celles dont tu as l'habitude, sauf qu'au lieu d'être du HTML c'est du SVG et qu'au lieu d'utiliser le moteur de rendu Haml ou Erb, tu utilises Builder ou l'excellent Rabl.


# Dans ton fichier mime_types.rb.
# Pense à relancer ton serveur si tu modifies ce fichier. :-°
Mime::Type.register "image/svg+xml", Confusedvg


# Dans ton fichier routes.rb.
resources :users


# Dans le contrôleur users_controller.rb.
class UsersController
def show
end
end


# Dans la vue users/show.svg.builder.
...