2015-05-13 45 views
6

Jestem nowicjuszem w HAML.Jaka jest różnica między = i - w haml podczas pisania kodu ruby?

Podczas przechodzenia przez haml samouczek drogę do reprezentowania kodu Ruby została wymieniona jako =

np: %strong= item.title

ale kiedy prowadził ten kod:

= @list.documents.each do |doc| 
    %tbody 
    %tr 
     %td= doc.display_name 

wraz ze wszystkimi listy Dane, które były tam wyświetlane, zawierały również dużo niepotrzebnych danych, które były związane z rzeczywistymi danymi listy, które były wyświetlane. To jest to, co mam:

val1 val2 val3 [#[email protected] : val1, @id:val2.....] 

Gdy próbuję tego samego kodu, zastępując = z - niechciane dane nie są odbierane.

- @list.documents.each do |doc| 
     %tbody 
     %tr 
      %td= doc.display_name 

wyjściowa:

val1 val2 val3 

może ktoś wyjaśnić różnicę pomiędzy - i = podczas pisania kodu Ruby w haml?

+1

'=' do wyświetlania, '-' do wykonania kodu ruby ​​bez wyświetlania – apneadiving

Odpowiedz

6

Obaj są wskaźniki, które co za tym idzie musi być zrealizowane w postaci kodu Ruby. Ale - nie wyświetla wyniku, aby wyświetlić, natomiast robi to =.

Na przykład rozważmy następujący pomocnika:

def hlp 
    [1,2].each(&:succ) # using example relevant to your code sample 
end 

each powróci do wyliczający, że jest wezwany. Tak więc zwracana wartość tej metody pomocniczej będzie wynosić [1,2].

Poniższa w widoku haml nie będą wyświetlane [1,2]:

- hlp 

Ale dodaje się go wyświetlić:

= hlp 

Dlatego w przykładowym kodzie masz wspólnego, można użyć -, i nie =, ponieważ nie chcesz wyświetlać wszystkich @list.documents po wykonaniu ich z użyciem .

+0

Dziękuję. Masz piękny umysł. – Fuser97381

0

W Haml, = służy do pisania kodu ruby ​​i wyświetla wynik jako wynik, podczas gdy - służy tylko do napisania kodu ruby.
Możesz przeczytać więcej o haml z tego http://haml.info/tutorial.html