从yaml文件中读取一些数据并在erb页面中使用它的正确方法是什么?

Fre*_*ind 8 yaml ruby-on-rails

我正在使用rails来建立一个网站.

我有一个yaml文件包含一些颜色,这是 config/colors.yml

---
- white
- red
- blue
- yellow
- ...
Run Code Online (Sandbox Code Playgroud)

并且,有一个erb文件app/views/users/setting.html.erb,需要数据config/colors.yml,并将它们放在标签中.

我不知道读取yaml文件的正确方法是什么.我可以读一次并将它们存储在内存中,或者每次请求页面时我都应该阅读它吗?

Joh*_*ley 13

config/initializers/load_colors.rb使用以下内容创建初始化文件:

COLORS = YAML.load_file("#{Rails.root}/config/colors.yml")
Run Code Online (Sandbox Code Playgroud)

这将COLORS在Rails应用程序启动时将配置文件的内容加载到变量中.然后,您可以使用COLORS['section_name']['white']等方式从应用程序中的任何位置访问颜色.例如,您可以执行以下操作:

<h1 style="color: <%= COLORS['h1']['blue'] %>;">Main Heading</h1>
Run Code Online (Sandbox Code Playgroud)

- 尽管在视图模板中使用这样的内联样式并不是一个很好的做法,但它可以让您了解其用法.