2010-07-08 9 views
8

Estoy utilizando raíles para construir un sitio web.¿Cuál es la forma correcta de leer algunos datos de un archivo yaml y usarlos en una página erb?

Tengo un archivo yaml contails algunos colores, lo cual es config/colors.yml

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

Y, hay un archivo de erb app/views/users/setting.html.erb, que necesitará los datos en config/colors.yml, y ponerlos en una etiqueta.

No sé cuál es la forma correcta de leer el archivo yaml. ¿Puedo leer una vez y almacenarla en la memoria, o debo leerla cada vez que se solicita la página?

Respuesta

13

Crear un archivo de inicialización config/initializers/load_colors.rb con estos contenidos:

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

Esto cargará el contenido del archivo de configuración en la variable COLORS cuando los carriles de aplicación se inicia. A continuación, puede acceder a los colores desde cualquier lugar dentro de la aplicación usando COLORS['section_name']['white'] etc. Por ejemplo, usted podría hacer:

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

— Aunque el uso de un estilo en línea como esta dentro de una plantilla de vista no es muy buena práctica, pero te da una idea del uso.

+0

gracias! Esto es justo lo que quiero saber – Freewind

1

Si los colores nunca cambian, está bien guardarlos en la memoria caché. Siga este tutorial DZone.

3er resultado para Google: ruby yaml tutorial.

Cuestiones relacionadas