【发布时间】:2015-02-07 19:35:53
【问题描述】:
我正在尝试遍历哈希,在格式化列表中打印出键和值。我的理解是字符串插值 #{} 会将符号隐式转换为字符串。但是,当我运行下面的代码时(略略):
holiday_hash = {
:winter => {:new_years => ["Party Hats", "Champagne"]}
}
holiday_hash.each do |key,value|
value.each do |key, value|
puts "#{key.gsub("_", " ")}: #{value.join(', ')}"
end
end
我收到此错误消息:
NoMethodError: undefined method `gsub' for :new_years:Symbol
有人可以解释这个问题吗?在运行 .gsub 之前,我是否需要将密钥显式转换为字符串? (即使用'key.to_str.gsub ...')。
我的预期/期望输出如下:
New Years: Party Hats, Champagne
【问题讨论】:
标签: ruby symbols gsub string-interpolation