Мне известно об этой функции, предоставляемой 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
Update:
Извините, я должен был упомянуть, что я не могу использовать openstruct, потому что у него нет метода each_pair, который имеет Struct. Я не знаю ключей заранее, поэтому я не могу использовать openstruct.