2012-03-30 8 views
11

Jestem nowy szef kuchni, ruby, ruby ​​DSL i erb. Pochodzę z Pythona. W szablonie erb ruby ​​chcę zrobić coś takiego.Szablony szefa kuchni i erb. Jak używać bloków kodu Boolean

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

ALL OF MY NGINX TEXT 

<% end -%> 

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

ALL OF MY REDIS TEXT 

<% end -%> 

Najwyraźniej brakuje mi czegoś o właściwej składni.

Dzięki

+1

Dlaczego? Czy daje błąd? Proszę to uwzględnić. –

Odpowiedz

25

Spróbuj tego:

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

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

<% end -%> 

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

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

<% end -%> 

Code zawinięte w <% %> lub <% -%> jest stwierdzenie, że jest oceniany. Kod zawarty w <%= %> to kod, który jest oceniany, a wynik jest umieszczany w pliku. Harcoded stringi nie muszą być zawijane w tagi erb, jeśli są stałe, ale kod Ruby musi być zawijany w tagi erb, jeśli chcesz, aby wynik tego kodu trafił do twojego pliku

+2

Dla tych, którzy są zainteresowani dodatkowymi łącznikami: http://stackoverflow.com/a/7996827/750510 – madhead

Powiązane problemy