我正在使用Chef来安装软件包。我在线上收到错误
node.default["installed_pkgs"] << 'amanda'
Undefined node attribute or method `<<' on `node'. To set an attribute, use `<<=value' instead.
如果我将其更改为:
node.default["installed_pkgs"] = 'amanda'
它似乎有用,或者至少它没有错误。我从那个退出的人那里接过来,所以我不确定他的代码,因为我不太了解Chef或Ruby。
答案 0 :(得分:2)
节点不知道&lt;&lt;并认为这是一个属性。
使用
node.default["installed_pkgs"] = 'amanda'
答案 1 :(得分:1)
不同之处在于Ruby。
<<
是shorthand for appending to the end to an array。如果您有一个数组,并且想要追加到它的末尾,那么您将使用<<
。
=
是香草派。您可以使用此值为变量或散列分配值,但必须确保您要分配的值是合适的;如果你在Ruby期望一个数组时指定一个标量值,那么你的程序就会出错。