我正在编写一个ruby脚本,我从命令行读取命令并检查它们是否正确。如果不是,我会显示比例错误。
我的代码如下所示:
if command == 0
puts "error one #{command}"
elsif command == 1
puts "other error two #{command}"
...
end
我有很多不同的错误字符串,并且它们中包含ruby代码。 我想创建一个哈希,但我不能在错误字符串中添加ruby代码。
有没有更好的方法来管理(硬编码)错误字符串?
答案 0 :(得分:2)
如果代码总是在最后,那么这可能会起作用:
Errors = {
0 => "error one",
1 => "other error two",
}.freeze
# later...
command = 1
puts "#{Errors.fetch(command)} #{command}"
#=> other error two 1
否则,您可以添加自定义占位符,然后在错误代码中替换:
Errors = {
0 => "error %{code} one",
1 => "%{code} other error two",
}.freeze
def error_str_for_code(code)
Errors.fetch(code) % { code: code.to_s }
end
# later...
command = 1
puts error_str_for_code(command)
#=> 1 other error two