2012-03-30 16 views
11

Şef, yakut, Ruby DSL ve erb için yeni. Python'dan geliyorum. Bir ruby ​​erb şablonunda böyle bir şey yapmak istiyorum.Şef ve erb şablonları. Boolean kod bloklarını kullanma

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

ALL OF MY NGINX TEXT 

<% end -%> 

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

ALL OF MY REDIS TEXT 

<% end -%> 

Açıkça düzgün sözdizimi hakkında bir şey özlüyorum.

+1

Neden? Size bir hata mı veriyor? Lütfen dahil et. –

cevap

25

bu deneyin

Teşekkür: <% %> veya <% -%> sarılmış

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

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

<% end -%> 

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

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

<% end -%> 

Kod değerlendirilir bir ifadedir. <%= %> ile kodlanmış kod değerlendirilen ve sonuç dosyanın içine yerleştirilen koddur. Harcoded dizeleri, eğer sabitse erb etiketlerine sarılmaları gerekmez, ancak bu kodun dosyanızın içine girmesini istiyorsanız Ruby kodunun erb etiketlerine sarılması gerekir

+2

Bu ekstra tire ile ilgilenenler için: http://stackoverflow.com/a/7996827/750510 – madhead

İlgili konular