厨师和erb模板。如何使用布尔代码块 [英] Chef and erb templates. How to use boolean code blocks

查看:74
本文介绍了厨师和erb模板。如何使用布尔代码块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是厨师,ruby,ruby DSL和erb的新手。我来自python。
在ruby erb模板中,我想这样做。

I am new to chef, ruby, ruby DSL, and erb. I come from python. In a ruby erb template I want to do something like this.

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

ALL OF MY NGINX TEXT 

<% end -%>

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

ALL OF MY REDIS TEXT 

<% end -%>

很明显,我缺少有关适当语法的内容。

Clearly I am missing something about proper syntax.

谢谢

推荐答案

尝试一下:

<% 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标签中

Code wrapped in <% %> or <% -%> is a statement that is evaluated. Code wrapped in <%= %> is code that is evaluated and the result is placed into the file. Harcoded strings dont have to be wrapped in erb tags if they are constant, but Ruby code must be wrapped in erb tags if you want the result of that code to go into your file

这篇关于厨师和erb模板。如何使用布尔代码块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆