我正在Rails 3.0.9中加载一个YAML文件,如下所示:

APP_CONFIG = YAML.load(File.read(File.expand_path('../app.yml', __FILE__)))

它像层次散列一样加载所有内容,没问题.我不喜欢的部分是,哈希只能用单引号或双引号访问,而不能使用符号.

APP_CONFIG['mailer']['username']  # works fine
APP_CONFIG[:mailer][:username]    # doesn't

有什么 idea 吗?

推荐答案

试着用HashWithIndifferentAccess

APP_CONFIG = HashWithIndifferentAccess.new(YAML.load(File.read(File.expand_path('../app.yml', __FILE__))))

Ruby-on-rails相关问答推荐

Rails TurboStream:可以向元素动态添加一个css类吗?

如何将Form_With用于多个没有控制器的型号

在URL中将下划线更改为连字符Ruby on Rails

仅在两个子域间共享Rails cookies,并为所有其他子域使用单独的cookie

获取所有属于模型的嵌套对象

如何保持 en.yml DRY?

rspec中日期时间结束时的分数是多少?

如何启动 rails 控制台并专门使用测试数据库?

Restful Rails 编辑与更新

如何使用 Rails 3 / Rack 在没有 www 的情况下重定向?

rails 3.2 迁移无法在更改方法中向 create_table 添加索引

Gem 更新:在从 ASCII-8BIT 到 UTF-8 到 US-ASCII 的转换中,无法将 "\xE7" 转换为 UTF-8

如何在where子句中组合两个条件?

如何独立测试模型的回调方法?

rails structure.sql和schema.rb有什么区别

rails 4 before_validation on: :create 或 on: :save

如何在 Rails 3 中将多个属性传递给 find_or_create_by?

在 Rails 中命名布尔列

Rails:如何将日期时间字符串解析为特定时区

在 Rails 3 中突出显示当前页面的最佳方法? -- 有条件地将css类应用于链接