我正在使用百分比字符串格式化,例如:
'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'键的边缘情况?