由于厨师11中的只读,拒绝失败

时间:2014-07-08 09:04:19

标签: chef

使用拒绝时我得到一个只读错误。从我的理解只有拒绝!应该失败吗?

(Node attributes are read-only when you do not specify which precedence level to set. To set an attribute use code like `node.default["key"] = "value"') on line #3:

    1: <% @params[:servers].each do |server| -%>
   2: server {
   3:   <% server.reject{|key,value| key == 'location'}.each_pair do |name, value| -%>
   4:   <%= name %> <%= value %>;
   5:   <% end -%>

主厨11.10.4

2 个答案:

答案 0 :(得分:1)

厨师属性并非完全哈希,并且他们不支持与哈希相同的操作。如果要在其上调用哈希方法,则需要深度复制该哈希值。

答案 1 :(得分:0)

在您的示例中,您实际上不需要深层复制。你可以使用

<% server.to_hash.reject{|key, value| key == 'location'}... %>