2010-07-08 3 views
8

J'utilise des rails pour construire un site web.Quelle est la bonne façon de lire certaines données d'un fichier yaml et de l'utiliser dans une page erb?

J'ai un fichier YAML contails certaines couleurs, ce qui est config/colors.yml

--- 
- white 
- red 
- blue 
- yellow 
- ... 

Et, il y a un fichier erb app/views/users/setting.html.erb, qui aura besoin des données config/colors.yml, et les mettre dans une balise.

Je ne sais pas quelle est la bonne façon de lire le fichier yaml. Puis-je lire une fois et les stocker en mémoire, ou je devrais le lire chaque fois que la page est demandée?

Répondre

13

Créer un fichier config/initializers/load_colors.rb initialiseur avec ce contenu:

COLORS = YAML.load_file("#{Rails.root}/config/colors.yml") 

Cela va charger le contenu du fichier de configuration dans la variable COLORS lorsque l'application Rails démarre. Ensuite, vous pouvez accéder aux couleurs partout dans l'application à l'aide COLORS['section_name']['white'] etc. Par exemple, vous pouvez faire:

<h1 style="color: <%= COLORS['h1']['blue'] %>;">Main Heading</h1> 

— Bien que l'utilisation d'un style en ligne comme celui-ci dans un modèle de vue est pas vraiment une bonne pratique, mais vous donne une idée de l'utilisation.

+0

merci! C'est juste ce que je veux savoir – Freewind

1

Si les couleurs ne changent jamais, il est possible de les mettre en cache. Suivez ce tutoriel DZone.

3e résultat pour Google: ruby yaml tutorial.

Questions connexes