Как правильно прочитать некоторые данные из файла yaml и использовать их на странице erb?

Я использую рельсы для создания веб-сайта.

У меня есть файл yaml, содержащий несколько цветов, а именно config/colors.yml

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

И есть файл erb app/views/users/setting.html.erb, которому потребуются данные в config/colors.yml, и поместите их в тег.

Я не знаю, как правильно читать файл yaml. Могу ли я прочитать один раз и сохранить их в памяти, или я должен читать его каждый раз, когда запрашивается страница?


person Freewind    schedule 08.07.2010    source источник


Ответы (2)


Создайте файл инициализатора config/initializers/load_colors.rb со следующим содержимым:

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

Это загрузит содержимое файла конфигурации в переменную COLORS при запуске приложения Rails. Затем вы можете получить доступ к цветам из любого места приложения, используя COLORS['section_name']['white'] и т. д. Например, вы можете сделать:

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

Хотя использование встроенного стиля, подобного этому, в шаблоне представления не очень хорошая практика, но это дает вам представление об использовании.

person John Topley    schedule 08.07.2010

Если цвета никогда не меняются, их можно кэшировать. Следуйте этому руководству по DZone.

3-й результат для Google: ruby yaml tutorial.

person mcandre    schedule 08.07.2010