Привет, я использую приведенный ниже код в своем рецепте шеф-повара, и он отлично работает со всеми другими существующими серверами, но не работает с моим новым сервером.
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
node['user']['user_array_node_attr']
не определено, но node['user']
является. Проверьте спецификацию атрибута, чтобы убедиться, что у него есть значение. Откуда взялось это значение?
Если он исходит из другого рецепта, вы можете оказаться в ситуации, когда ваш run_list предполагает, что у него есть значение перед рецептом, который определяет его запуск. Этот сценарий может произойти со временем по мере изменения кулинарных книг - предыдущая версия правильно устанавливает атрибут и заменяется, поэтому существующие узлы работают нормально, но новые узлы не работают.