私はシェフ、Ruby、Ruby DSL、およびerbを初めて使用します。Pythonから来ました。Ruby erbテンプレートでこのようなことをしたいと思います。
<% if node[:monit][:server]=='nginx' -%>
ALL OF MY NGINX TEXT
<% end -%>
<% if node[:monit][:server]=='redis' -%>
ALL OF MY REDIS TEXT
<% end -%>
明らかに、私は適切な構文について何かが欠けています。
ありがとう
これを試して:
<% if node[:monit][:server]=='nginx' -%>
nginx_text=<%= node[:nginx][:text] %>
<% end -%>
<% if node[:monit][:server]=='redis' -%>
redis_text=<%= node[:redis][:text] %>
<% end -%>
<% %>
または<% -%>
でラップされたコードは、評価されるステートメントです。 <%= %>
でラップされたコードは、評価され、結果がファイルに配置されるコードです。ハーコードされた文字列は、定数の場合はerbタグでラップする必要はありませんが、Rubyコードの結果をファイルに含める場合は、コードをerbタグでラップする必要があります