2012-03-30 1 views
11

Sono nuovo per lo chef, rubino, rubino DSL ed erb. Vengo da Python. In un modello di ruby ​​erb voglio fare qualcosa di simile.Modelli chef ed erb. Come usare i blocchi di codice booleano

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

ALL OF MY NGINX TEXT 

<% end -%> 

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

ALL OF MY REDIS TEXT 

<% end -%> 

Chiaramente mi manca qualcosa sulla sintassi corretta.

Grazie

+1

Perché? Ti dà un errore? Per favore includilo. –

risposta

25

provare questo:

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

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

<% end -%> 

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

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

<% end -%> 

Codice avvolto in <% %> o <% -%> è una dichiarazione che viene valutata. Il codice inserito in <%= %> è il codice che viene valutato e il risultato viene inserito nel file. Le stringhe harcoded non devono essere racchiuse nei tag erb se sono costanti, ma il codice Ruby deve essere racchiuso nei tag erb se vuoi che il risultato di quel codice entri nel tuo file

+2

Per coloro che sono interessati ai trattini in più: http://stackoverflow.com/a/7996827/750510 – madhead