如何访问 rails 中的 YML 文件

How to access YML file in rails

我已经在我的配置文件夹中设置了一个 settings.yml 文件,其中包含一些我想传递给我的 rails 模型中的枚举的列表元素:

config/ settings.yml
enumerize:
  hotel_status:
    - "Hotel Privé"
    - "Bâtiment Publique"
    - "CHRS"
    - "CADA"
    - "Centre d'accueil"
    - "Camping"
    - "Autres"

我正在尝试在我的酒店模型中传递列表以这种方式枚举:

  enumerize :status, in: Settings.enumerize.hotel_status

但我得到 uninitialized constant Hotel::Settings

如何通过 YML 中的列表进行枚举。

在 config/initialize 中设置初始化程序,也许 load_settings.rb

require 'yaml'
settings = YAML.load_file(Rails.root.join('config', 'settings.yml')
EnumerizedValues = OpenStruct(settings['enumerize'])

然后你可以做

enumerize :status in: EnumerizedValues.hotel_status

有一个名为 config 的 gem,您可以毫不费力地完成它,而且您可以为您的应用程序添加多环境设置。