2010-10-21 20 views
0

Dans notre application, nous avons différents thèmes et chaque thème a son propre contenu par défaut dans la structure suivante:RoR: Stockage HTML dans un fichier pour une utilisation ultérieure

ROWS 
    COLUMNS 
    CONTENT 
     HTML DATA 1 
    CONTENT 
     HTML DATA 2 

Il pourrait y avoir plusieurs lignes, des éléments de la colonne et de contenu . Nous devons stocker ces données dans un fichier (manuellement), puis lire & le vider dans la base de données. Nous avons essayé avec XML mais cela ne semble pas possible même avec CDATA. D'autres options que nous avons sont:

a. Stocker dans un document HTML simple et utiliser Hpricot pour la récupération

b. Utilisez YAML pour stocker à la récupération

S'il vous plaît laissez-moi savoir si quel est le meilleur moyen ou une autre meilleure alternative.

Merci,

Imran

Répondre

1

Ok, donc je ne suis pas tout à fait clair sur ce que vous essayez de stocker pour le thème. Pour les applications de type thème général, vous devriez vérifier liquide (http://www.liquidmarkup.org/) ou moustache http://github.com/defunkt/mustache.

Pour stocker des structures arbitraires qui n'ont pas besoin d'être interrogées dans une base de données SQL, vous pouvez utiliser yaml ou JSON. Ma préférence va à JSON car il est un peu plus rapide, plus simple, et fait le travail. Je vous déconseille d'utiliser un document HTML pour stocker toutes les informations si vous avez besoin de l'interroger comme un document XML car il serait relativement facile de vider le fichier accidentellement dans le cadre d'un thème normal (par exemple si Si vous avez une classe qui indique l'une des colonnes ou des lignes et que vous transformez le document en fonction de cela, vous pourriez obtenir des résultats inattendus si cette classe est accidentellement utilisée pour styliser l'un des blocs de HTML).

Vous ne devriez pas non plus utiliser Hpricot car il est essentiellement non maintenu et déprécié en faveur de Nokogiri.

+0

Ben, Merci pour la réponse détaillée. Les thèmes ne sont pas pour l'application elle-même, mais pour les pages que l'application permet de créer. Vous pouvez les appeler des modèles de page. Chaque modèle a son propre contenu par défaut, et c'est ce que je souhaite stocker dans un fichier et ne veux pas stocker dans la base de données. Juste pour confirmer, devrais-je aller avec JSON pour le stockage et la récupération de données? – Saim

+0

Des ressources pour travailler avec JSON dans RoR? – Saim

+0

En fait, dans ce cas, vous devriez vérifier Jekyll (http://github.com/mojombo/jekyll). JSON est essentiellement trivial avec lequel travailler car il mappe directement sur les hachages ruby, les chaînes, les nombres et les tableaux. La documentation sur la gemme JSON est plus que suffisante (et son interface est également émulée par YAJL, ce qui est plus rapide) –