【发布时间】:2012-05-28 07:22:52
【问题描述】:
我有一个非 Rails 项目,我正在从 YAML 文件中加载一些设置:
config = YAML::load(File.open("#{LOG_ROOT}/config/database.yml"))
我只能像config["host"]、config["username"] 等那样访问这个哈希。
我想要无所谓的访问权限,因此我可以同时使用 :host 和 "host"。
原因是,我要传递此哈希的项目中的其中一个 gem 似乎正在使用符号访问它,但目前它失败了。
在这种情况下创建具有无关访问的哈希的最佳方法是什么?
【问题讨论】:
-
即使你不使用 Rails,你有什么理由不能
require 'active_support/core_ext/hash/indifferent_access',还有你的解决方案吗? -
我还没有安装 active_support gem,我想知道我是否应该安装它只是为了获得这个功能。
-
如果您不想这样做,请将代码复制/粘贴到您自己的哈希中,并使用无关的访问类。没看过Rails的解决方案,之前自己写过,不能超过50 LOC。
-
我也想过这个。。在这里查看是否有更好的方法。
-
我是 ruby 新手,所以我想为什么不向社区咨询一下,以防我遗漏了什么。我愿意复制。
标签: ruby