获取哈希键并转换为字符串ruby

时间:2012-01-10 18:50:51

标签: ruby-on-rails-3

示例哈希

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)吗? /强>

2 个答案:

答案 0 :(得分:17)

您是否升级了Ruby以及Rails?我认为这是1.8和1.9之间的变化

尝试hash.keys.first.to_s(如果始终只有一个键)或hash.keys.join

答案 1 :(得分:3)

您只需将其转换为符号而不是更正确的字符串:

hash[hash.keys.to_sym]