Tôi biết tính năng này do ActiveSupport cung cấp.Tôi làm cách nào để có được quyền truy cập băm kiểu JavaScript?
h = ActiveSupport::OrderedOptions.new
h.boy = 'John'
h.girl = 'Mary'
h.boy # => 'John'
h.girl # => 'Mary'
Tuy nhiên tôi đã có một băm lớn và tôi muốn truy cập băm đó bằng ký hiệu chấm. Đây là những gì tôi đã thử:
large_hash = {boy: 'John', girl: 'Mary'}
h = ActiveSupport::OrderedOptions.new(large_hash)
h.boy # => nil
Điều đó không hiệu quả. Làm thế nào tôi có thể thực hiện công việc này.
Tôi đang sử dụng ruby 1.9.2
Cập nhật:
Xin lỗi tôi có nên nói rằng tôi không thể sử dụng openstruct bởi vì nó không có each_pair phương pháp mà Struct có. Tôi không biết chìa khóa trước vì vậy tôi không thể sử dụng kiến trúc mở.
Hầu như một câu hỏi giống hệt nhau: http://stackoverflow.com/questions/2240535/ruby-hash-keys-as-methods-on-a-class –
thể trùng lặp của [Ruby - phím Hash vào tên phương thức?] (http://stackoverflow.com/questions/6423484/ru by-hash-keys-to-method-name) –