記号を使用してハッシュキーにアクセスしようとすると機能しないというシナリオがありますが、文字列を使用してアクセスすると正常に機能します。文字列よりも記号が推奨されることを理解しているので、スクリプトをクリーンアップしようとしています。スクリプトの他の場所でハッシュシンボルを使用していますが、機能しないのはこの特定のシナリオだけです。
スニペットは次のとおりです。
account_params ={}
File.open('file', 'r') do |f|
f.each_line do |line|
hkey, hvalue = line.chomp.split("=")
account_params[hkey] = hvalue
end
end
account_scope = account_params["scope"]
これは機能しますが、以下に示すように、シンボルを使用すると機能しません。
account_scope = account_params[:scope]
シンボルを使用すると、次のようになります。
can't convert nil into String (TypeError)
重要かどうかはわかりませんが、この特定のハッシュ値の内容は次のようになります。
12345/ABCD123/12345