В развертывании Opsworks нет node[:deploy]

Мой узел развертывания opsworks не имеет объекта [:deploy] Это мой скрипт Chef

if node[:deploy] === nil

    Chef::Log.info("No deployment..")
    node[:deploy].each do |app, deploy|
        Chef::Log.info("deploy -#{ app }-")
    end
elsif
    # never goes here
end

я получил эту ошибку в строке 4

undefined method `each' for nil:NilClass (NoMethodError)

person Rahadian Kumang    schedule 21.01.2019    source источник


Ответы (1)


во-первых, я советую вам прочитать Что делает оператор «===» в Ruby?.

у меня такое ощущение, что вы хотели использовать ==, а не ===. измените свой оператор тройного равенства на оператор двойного равенства и попробуйте...

вы можете использовать #nil?, если вы хотите сделать его более читабельным (в зависимости от вашей версии ruby). сдача

if node[:deploy] === nil

to

node[:deploy].nil?
person Mr.    schedule 24.01.2019