【发布时间】:2019-01-24 03:17:18
【问题描述】:
我正在使用百分比字符串格式,如下所示:
'fetching imap (%<host>s/%<user>s port=%<port>s...' % options
当options 散列具有符号键{ host: 'example.com' } 时,这工作正常,但当它具有字符串键{ 'host' => 'example.com' } 时引发KeyError:
KeyError: key<host> not found
这是有问题的,因为 Rails 的 HashWithIndifferentAccess 默认使用字符串键。如果使用 ActiveSupport,一种解决方案是在哈希上调用 symbolize_keys。
有没有其他方法可以让String#% 方法尝试字符串键和符号键?
这是一个值得报告的 Ruby 错误吗?或者是否有强制执行此行为的原因,例如同时存在 :host 和 'host' 键的极端情况?
【问题讨论】:
-
为什么这是一个错误?我不明白你的想法。最多,它可能是一个功能请求(尽管我会强烈反对)。
标签: ruby string formatting printf