Ruby 厨师和雇员再培训局模板。如何使用布尔代码块

Ruby 厨师和雇员再培训局模板。如何使用布尔代码块,ruby,chef-infra,Ruby,Chef Infra,我是厨师、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 -%> 我所有的NGINX文本

我是厨师、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 -%>

我所有的NGINX文本
我所有的REDIS文本
很明显,我缺少一些关于正确语法的东西

谢谢

试试这个:

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

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

<% end -%>

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

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

<% end -%>

nginx_文本=
redis_文本=

包装在中的代码是一条经过计算的语句。包装在中的代码是经过计算并将结果放入文件中的代码。如果Harcoded字符串是常量,则不必将其包装在erb标记中,但是如果希望代码的结果进入文件,则必须将Ruby代码包装在erb标记中

为什么?这会给你一个错误吗?请将其包括在内。对于那些对额外连字符感兴趣的人: