2016-04-10 112 views
1

我想初始化一個空的廚師屬性,像這樣:附加到廚師陣列屬性

node.default['tool_list'] = Array.new

,我想將元素添加到這個數組的菜譜運行,並最終使用完整的數組對食譜中最後一個食譜的輸入。

因此,作爲每個配方運行,我想追加到這樣的屬性:

node['tool_list'] << "tool:Python_2.7"

,我在我的最後做了幾次不同的工具,並最終引用的資源食譜:

resource "example" do 
    labels   node['tool_list'] 
end 

除了這似乎不工作,最後的屬性看起來是空白的。我究竟做錯了什麼?追加到像這樣的屬性的正確方法是什麼?

回答

2

這真的很不推薦。數組沒有任何分層合併的語義,所以東西變得很奇怪。更好的方法是使用散列,然後使用node['tool_list'].keys或類似的東西。此外,您可能會陷入編譯/收斂差異,需要將事情包裝爲懶惰評估(lazy { node['tool_list'].keys })。