使用拒绝时我得到一个只读错误。从我的理解只有拒绝!应该失败吗?
(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
答案 0 :(得分:1)
厨师属性并非完全哈希,并且他们不支持与哈希相同的操作。如果要在其上调用哈希方法,则需要深度复制该哈希值。
答案 1 :(得分:0)
在您的示例中,您实际上不需要深层复制。你可以使用
<% server.to_hash.reject{|key, value| key == 'location'}... %>