我是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 -%>
Run Code Online (Sandbox Code Playgroud)
很明显,我错过了正确的语法.
谢谢
Jos*_*ark 27
试试这个:
<% if node[:monit][:server]=='nginx' -%>
nginx_text=<%= node[:nginx][:text] %>
<% end -%>
<% if node[:monit][:server]=='redis' -%>
redis_text=<%= node[:redis][:text] %>
<% end -%>
Run Code Online (Sandbox Code Playgroud)
包含在代码中的代码<% %>或是<% -%>被评估的语句.包含的<%= %>代码是已评估的代码,结果将放入文件中.如果它们是常量,则编码的字符串不必包含在erb标记中,但如果您希望该代码的结果进入您的文件,则必须将Ruby代码包装在erb标记中