Ответ 1
Преобразуйте ключ из строки в символ и выполните поиск в хеше.
hash = {:key1 => "value1", :key2 => "value2"}
k = 'key1'
hash[k.to_sym] # or iow, hash[:key1], which will return "value1"
Rails использует этот класс под названием HashWithIndifferentAccess
, что очень полезно в таких случаях. Я знаю, что вы только отметили свой вопрос Ruby, но вы могли украсть реализацию этого класса из источника Rails, чтобы избежать символа и символа символа, чтобы преобразовывать строки в вашу кодовую базу. Это делает ценность доступной с использованием символа или строки в качестве ключа.
hash = HashWithIndifferentAccess.new({:key1 => "value1", :key2 => "value2"})
hash[:key1] # "value1"
hash['key1'] # "value1"