2016-06-03 4 views
1

Как мне вызвать переменную из моего манифеста внутри, а другую переменную в файле template.erb?Переменная шаблона Puppet внутри другой переменной шаблона

Это то, что я пытался сделать:

<%= food[<%= menu %>] %> 

Как получить эту работу?

+0

'<% = food [menu]%>' – marcusshep

+0

Он подразумевает использование хэша, что определенно то, что вы должны делать, учитывая предоставленную информацию. –

ответ

3

Вы просто использовать переменный, как:

<%= food[menu] %> 

Вы уже в «Рубине кодового пространства» в рамках расширения ERB, так что вы можете использовать Ruby-код, как обычно.

Ссылаясь на секцию по Accessing Puppet VariablesPuppet 4.5 Embedded Ruby (ERB) template syntax, есть 2 формы переменного доступа:

  • @variable синтаксис
  • сфера [ 'переменной'] Синтаксис

Из примера в вопрос, недостаточно информации, чтобы точно определить происхождение переменной food. Этот вопрос предполагает, что это результат обработки переменной манифеста массива или хэша. Если food является манифест переменного, сам по себе, оно должно быть предваряются @ как таковые:

<%= @food[menu] %> 

Если манифест переменной foods, а переменная food представляет собой элемент из перечислимы (массив или хэш), его будет использоваться в качестве такового:

<%= @foods.each do |food| %> 
    <%= @food[menu] %> 
<% end %> 

Палка с документированными методами доступа к манифесту переменного, и вы можете использовать его в шаблоне так, как вы бы в традиционном коде Ruby.

+0

Да. Тем не менее, для шаблонов предпочтительно обращаться к переменным Puppet через форму '@ var'. –

Смежные вопросы