在Rails中如何避免哈希的字符串键被自动转换为符号?
问题根源
你用到的"key": value是Ruby内置的符号键语法糖,无论键外层是否包裹双引号,只要冒号紧跟在引号尾部,Ruby就会自动将该键识别为符号类型,这一行为和你使用的Rails 4.2版本无关,属于Ruby语法本身的默认规则。
解决方案
如果需要保留字符串类型的键,改用哈希火箭=>语法定义哈希即可,正确写法如下:
my_hash_arr = [{"name" => "DA", "amount" => 100000 }]
执行后输出结果为:
=> [{"name"=>"DA", "amount"=>100000}]
完全符合字符串键的需求。
如果是已经生成的符号键哈希需要转成字符串键,可以直接使用Rails封装的stringify_keys方法处理:
# 示例:已有符号键哈希转字符串键 symbol_hash = {name: "DA", amount: 100000} string_hash = symbol_hash.stringify_keys
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

