If I have a hash in Ruby on Rails, is there a way to make it indifferent access?

前端 未结 5 1744
-上瘾入骨i
-上瘾入骨i 2021-02-01 12:04

If I already have a hash, can I make it so that

h[:foo]
h[\'foo\']

are the same? (is this called indifferent access?)

The details: I

5条回答
  •  隐瞒了意图╮
    2021-02-01 13:07

    You can just make a new hash of HashWithIndifferentAccess type from your hash.
    
    hash = { "one" => 1, "two" => 2, "three" => 3 }
    => {"one"=>1, "two"=>2, "three"=>3}
    
    hash[:one]
    => nil 
    hash['one']
    => 1 
    
    
    make Hash obj to obj of HashWithIndifferentAccess Class.
    
    hash =  HashWithIndifferentAccess.new(hash)
    hash[:one]
     => 1 
    hash['one']
     => 1
    

提交回复
热议问题