Как я могу получить доступ к хешу в стиле JavaScript?

Я знаю об этой функции, предоставляемой ActiveSupport.

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

Обновление:

Извините, я должен был упомянуть, что я не могу использовать openstruct, потому что у него нет метода each_pair, который есть у Struct. Я не знаю ключей заранее, поэтому не могу использовать openstruct.

13
задан Machavity 15 August 2017 в 18:16
поделиться