2010-10-17 19 views
6

znalazłem to "wykonany bez powrotu do wyjścia", ale może mój angielski nie był zbyt dobry, naprawdę nie mogę zrozumieć, co to znaczy. Czy ktoś może pomóc?<% %> (bez równego) w rubie erb oznacza?

+0

W kontekście Rails takie rzeczy prawie zawsze oznacza „flow control” - to kod, który nie zwraca wartości, ale raczej mówi inny kod, czy i kiedy strzelać. –

Odpowiedz

10

<%%>

wykona kod Ruby bez wpływu na stronie HTML są renderowane. Wynik zostanie wyrzucony.

<% =%>

wykona kod Ruby i wstawić wyjście tego kodu w miejsce <% =%>

przykład ...

<% puts "almost" %> nothing to see here 

uczyniłoby jako

nothing to see here 

jednakże

<%= puts "almost" %> nothing to see here 

uczyniłoby jako

almost nothing to see here 
7

Czasami musisz (lub chcesz) wykonać kilka instrukcji ruby, ale nie dla celów wyjściowych.

jak następuje:

<% if @user.nil? %> 
    Hi, welcome! 
<% else %> 
    Hi, <%= @user.name %>! 
<% end %> 

Oczywiście jest to tylko jeden przypadek użycia, ale czasami trzeba zrobić <% %>: D

1

kod w <% %> (bez równe) wykonywana jest „bez substytucji powrotem do wyjścia "oznacza, że ​​chcesz wykonać kod BEZ dowolnego wyjścia, takiego jak pętla, a najlepsze jest to, że może być użyty z kodem nie-ruby.

<% 3.times do %> 

<h1>Hello world</h1> 

<%end%> 

This will give: 

<h1>Hello world</h1> 
<h1>Hello world</h1> 
<h1>Hello world</h1> 
+0

ohh, dzięki. Więc z = musi być wyjście! – wizztjh