web-dev-qa-db-ja.com

シェフとerbのテンプレート。ブールコードブ​​ロックの使用方法

私はシェフ、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 -%>

明らかに、私は適切な構文について何かが欠けています。

ありがとう

14
Tampa

これを試して:

<% 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タグでラップする必要があります

27
Joshua Clark