我有一堆if-elsif
这样的块,它们以 else 语句结尾,所以我的结构如下所示:
if path.end_with?('something')
template_name = 'something.json.erb'
res.body = ERB.new(File.read(File.expand_path("../#{template_name}", __FILE__))).result(binding)
res.status = 200
res['Content-Type'] = 'application/json'
elsif path.end_with?('somethingELSE')
template_name = 'somethingELSE.json.erb'
res.body = ERB.new(File.read(File.expand_path("../#{template_name}", __FILE__))).result(binding)
res.status = 200
res['Content-Type'] = 'application/json'
# a couple more similar if-elsif blocks in here
else
res.status = 400
res['Content-Type'] = 'text/plain'
res.body = "Invalid path"
因此,该部分中有很多重复的代码,其中包含刚刚重复的 if-elsif 块。基本上只有设置 template_name 的那一行是必要的,我们应该能够将接下来的三行中的其余部分分解出来,但是最后我有其他的东西阻止我这样做。
您如何建议重构此代码以使其更简洁且重复代码更少?