我知道ActiveSupport提供的此功能。我如何获得JavaScript风格的哈希访问?
h = ActiveSupport::OrderedOptions.new
h.boy = 'John'
h.girl = 'Mary'
h.boy # => 'John'
h.girl # => 'Mary'
但是,我已经有一个大的散列,我想用点符号访问该散列。这是我试过的:
large_hash = {boy: 'John', girl: 'Mary'}
h = ActiveSupport::OrderedOptions.new(large_hash)
h.boy # => nil
这没有奏效。我该如何做这项工作。
我使用Ruby 1.9.2
更新:
对不起,我应该提到,因为它不具有结构有each_pair方法我不能用openstruct。我事先不知道密钥,所以我不能使用openstruct。
几乎相同的问题: - 混杂键http://stackoverflow.com/questions/2240535/ruby-hash-keys-as-methods-on-a-class –
[红宝石的可能重复到方法名称?](http://stackoverflow.com/questions/6423484/ru by-hash-keys-to-method-names) –