2010-07-08 9 views
8

Sto usando i binari per costruire un sito web.Qual è il modo corretto di leggere alcuni dati da un file yaml e usarli in una pagina erb?

Ho un file YAML contails alcuni colori, che è config/colors.yml

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

E, c'è un file erb app/views/users/setting.html.erb, che sono necessari i dati in config/colors.yml, e metterli in un tag.

Non so quale sia il modo corretto di leggere il file yaml. Posso leggere una volta e memorizzarli in memoria, o dovrei leggerlo ogni volta che viene richiesta la pagina?

risposta

13

Creare un file di inizializzazione config/initializers/load_colors.rb con questi contenuti:

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

Questo caricherà il contenuto del file di configurazione nella COLORS variabile quando l'applicazione si avvia Rails. Quindi è possibile accedere i colori da qualsiasi punto all'interno della applicazione utilizzando COLORS['section_name']['white'] ecc, ad esempio, si potrebbe fare:

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

— Sebbene l'utilizzo di uno stile in linea come questo all'interno di un modello di vista non è davvero buona pratica, ma è ti dà un'idea dell'uso.

+0

grazie! Questo è proprio quello che voglio sapere – Freewind

1

Se i colori non cambiano mai, è possibile memorizzarli nella cache. Segui questo tutorial DZone.

3o risultato per Google: ruby yaml tutorial.

Problemi correlati