示例哈希
hash = {:key => ["val1", "val2]}
当我在rails 3.0.7上执行此操作时,它很好。
> hash.keys.to_s
=> "key"
> hash[hash.keys.to_s]
=> ["val1", "val2"]
但如果我使用rails 3.1.3执行此操作,则不是。
> hash.keys.to_s
=> [\"key\"]
> hash[hash.keys.to_s]
=> nil
这是因为Rails版本发生了变化吗?和还有其他方法可以将哈希键转换为适用于这两个版本的字符串(或使用rails 2)吗? /强>
答案 0 :(得分:17)
您是否升级了Ruby以及Rails?我认为这是1.8和1.9之间的变化
尝试hash.keys.first.to_s
(如果始终只有一个键)或hash.keys.join
答案 1 :(得分:3)
您只需将其转换为符号而不是更正确的字符串:
hash[hash.keys.to_sym]