ruby Sprintf密钥错误

ruby Sprintf密钥错误,ruby,printf,Ruby,Printf,当我在ruby中执行以下操作时: template = "/home/%{:user}/%{:name}/%{:environment}/current" values = {user: "firera", name: "firera_test", environment: "staging"} template % values 我得到以下错误: KeyError: key{:user} not found from (irb):3:in `%' from (

当我在ruby中执行以下操作时:

template = "/home/%{:user}/%{:name}/%{:environment}/current"
values = {user: "firera", name: "firera_test", environment: "staging"}
template % values
我得到以下错误:

KeyError: key{:user} not found
        from (irb):3:in `%'
        from (irb):3

钥匙显然在那里,为什么说找不到?

您定义的模板不正确。它应该是这样的:

template = "/home/%{user}/%{name}/%{environment}/current"
values = {user: "firera", name: "firera_test", environment: "staging"}
template % values
#=> "/home/firera/firera_test/staging/current"

您错误地定义了模板。它应该是这样的:

template = "/home/%{user}/%{name}/%{environment}/current"
values = {user: "firera", name: "firera_test", environment: "staging"}
template % values
#=> "/home/firera/firera_test/staging/current"

啊,是的,我明白了,谢谢你指出,我没有注意到这是因为我在模板中添加了冒号,而他们不应该在模板中。啊,是的,我明白了,谢谢你指出,没有注意到这是因为我在模板中添加了冒号,而他们不应该在模板中。