厨师食谱给出错误,因为未定义方法“拆分”

厨师食谱给出错误,因为未定义方法“拆分”

你好,我在我的厨师菜谱中使用了下面的代码,它可以与所有其他现有服务器很好地兼容,但它不能很好地与我的新服务器兼容。

user_array = node
node['user']['user_array_node_attr'].split("/").each do |hash_key|
  user_array = user_array.send(:[], hash_key)
end

并给出错误

FATAL: NoMethodError: undefined method 'split' for nil:NilClass

答案1

node['user']['user_array_node_attr']未定义,但node['user']确实存在。请检查您的属性规范以确保它有值。这个值来自哪里?

如果它来自另一个配方,您可能会遇到这种情况:您的 run_list 假设它在定义它的配方运行之前有一个值。这种情况可能会随着时间的推移而发生,因为配方会发生变化——先前的版本正确设置了属性并被替换,因此现有节点工作正常,但新节点会失败。

相关内容