我是Chef,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 -%>
显然我错过了正确的语法。
由于
答案 0 :(得分:27)
试试这个:
<% 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标记中