Шаблоны шеф-повара и erb. Как использовать блоки boolean code

Я новичок в поваре, рубине, рубине DSL и erb. Я родом из питона. В шаблоне ruby ​​erb я хочу сделать что-то вроде этого.

<% if node[:monit][:server]=='nginx' -%>

ALL OF MY NGINX TEXT 

<% end -%>

<% if node[:monit][:server]=='redis' -%>

ALL OF MY REDIS TEXT 

<% end -%>

Понятно, что у меня что-то не хватает в правильном синтаксисе.

Спасибо

Ответ 1

Попробуйте следующее:

<% if node[:monit][:server]=='nginx' -%>

  nginx_text=<%= node[:nginx][:text] %> 

<% end -%>

<% if node[:monit][:server]=='redis' -%>

  redis_text=<%= node[:redis][:text] %> 

<% end -%>

Код, заключенный в <% %> или <% -%>, является оценкой. Код, заключенный в <%= %>, является кодом, который оценивается, и результат помещается в файл. Строки Harcoded не должны быть обернуты в теги erb, если они постоянны, но код Ruby должен быть обернут в теги erb, если вы хотите, чтобы результат этого кода заходил в ваш файл.