尝试将厨师客户端从版本12升级到13我面临一些主要与语法更改相关的问题
node['java']['webapps'].each do |object|
name = object[0]
attributes = object[1]
if attributes.attribute?('enabled')
if attributes.enabled
if attributes.attribute?('x')
if attributes.x.attribute?('conf')
attributes.x.conf.each do |conf_file|
template "#{x_conf_dir}/#{conf_file}" do
source "#{conf_file}.erb"
mode '0755'
owner 'tomcat'
group 'tomcat'
end
end
end
end
end
end
end
主厨客户端出现错误" if attributes.enabled"在版本12上运行正常(如果数组中的enabled = true则应该继续)
现在我正在点击"未定义的方法'启用'"
检查数组中的值的正确语法是什么?
答案 0 :(得分:1)
现在必须是attributes['enabled']
,但无论如何都可以大规模清理该代码。我认为使用类似node.read
的{{1}}方法做同样的事情:
Hash#dig
任何时候你看到那么多的对角缩进,可能会重新考虑你的代码:)