Chef infra 厨师数据包中的哈希数组?
我试图在chef数据库项中包含哈希数据数组。这是否得到支持?我不断收到关于未定义方法的错误消息。下面是一个例子: 数据库项:Chef infra 厨师数据包中的哈希数组?,chef-infra,databags,Chef Infra,Databags,我试图在chef数据库项中包含哈希数据数组。这是否得到支持?我不断收到关于未定义方法的错误消息。下面是一个例子: 数据库项: { "id": "BurgerKing", "sandwich": "Whopper", "nickname": "BK", "value_meals":[ { "sandwich": "Big King", "
{
"id": "BurgerKing",
"sandwich": "Whopper",
"nickname": "BK",
"value_meals":[
{
"sandwich": "Big King",
"side": "Fries",
"drink": "Coke"
},
{
"sandwich": "Kids Burger",
"side": "Apple Slices",
"drink": "Milk"
}
]
}
模板:
<!-- I want to go to <%= @restaurant[ 'nickname' ] %> to get a <%= @restaurant['sandwich'] %>. -->
<!-- But there are also value meals... -->
<% @restaurant.value_meals.each do | meal | %>
<!-- <%= meal.sandwich %>, <%= meal.side %>, and <%= meal.drink %> -->
<% end -%>
如果我只访问sandwich和昵称字段,那我就很好了,但只要我添加代码来迭代value_,我就会得到:
Chef::Mixin::Template::TemplateError (undefined method `value_meals' for #<Chef::DataBagItem:0x00000002d07df0>) on line #6:
4: <!-- I want to go to <%= @restaurant[ 'nickname' ] %> to get a <%= @restaurant['sandwich'] %>. -->
5: <!-- But there are also value meals... -->
6: <% @restaurant.value_meals.each do | meal | %>
7: <!-- <%= meal.sandwich %>, <%= meal.side %>, and <%= meal.drink %> -->
8: <% end -%>
第6行的Chef::Mixin::Template::TemplateError(未定义的#方法'value#u fines')
4:
5:
6:
7:
8:
谢谢你
谢谢CodeRanger
添加以下内容,在这里修复了它,因为我显然还没有格式化注释的诀窍
<!-- But there are also value meals... -->
<% @restaurant['value_meals'].each do | meal | %>
<!-- <%= meal[ 'sandwich' ] %>, <%= meal[ 'side' ] %>, and <%= meal[ 'drink' ] %> -->
<% end -%>
在Ruby中访问哈希的方式是通过
[]
语法,所以@restaurant['value\u-diems'].每个和餐点['side']
谢谢!!!将其修改为:并且它像冠军一样工作!为糟糕的格式致歉…对SO来说是新的。