2012-03-30 64 views
11

我是廚師,紅寶石,紅寶石DSL和erb的新手。我來自python。 在紅寶石erb模板中,我想要做這樣的事情。廚師和erb模板。如何使用布爾代碼塊

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

ALL OF MY NGINX TEXT 

<% end -%> 

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

ALL OF MY REDIS TEXT 

<% end -%> 

顯然我錯過了正確的語法。

感謝

+1

爲什麼?它會給你一個錯誤?請包括它。 – 2012-03-30 01:40:25

回答

25

試試這個:

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

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

<% end -%> 

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

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

<% end -%> 

代碼包裹在<% %><% -%>是評估的聲明。包裝在<%= %>中的代碼是經過評估並將結果放入文件中的代碼。如果您想讓代碼的結果進入您的文件,那麼Harcoded字符串不必被包裹在erb標記中,但是Ruby代碼必須包裹在erb標記中

+2

對於那些對額外連字符感興趣的人:http://stackoverflow.com/a/7996827/750510 – madhead 2016-07-15 14:25:57