Как HAML может распознать конец блока? - PullRequest
3 голосов
/ 24 апреля 2011
= form_for(:subject, :url => {:action => "create"}) do |f|
    = render :partial => "form", :locals => {:f => f}
    #form_buttons= submit_tag "Create Subject"

Заметил, что у form_for есть "do", поэтому ему нужен "конец", но как HAML знает, где заканчивать "конец"?

Извините за мой английский, надеюсь, вы можетепойми о чем я говорю

Ответы [ 2 ]

4 голосов
/ 24 апреля 2011

HAML использует отступы для разделения блоков так же, как это делает язык Python. Возможно, вам следует прочитать базовый учебник или WIKI для получения дополнительной информации.

= form_for(:subject, :url => {:action => "create"}) do |f|
    = render :partial => "form", :locals => {:f => f}
    #you can use f here
# you can't use f here
2 голосов
/ 26 апреля 2011

HAML использует отступ для блочной структуры.
Проще говоря, когда код на самом деле «превосходит», это подразумеваемый конец (либо для тега html, либо для блока ruby ​​do-end). Так что в html / ruby ​​будет

...
loop1
  loop2
    code_for_loop2
  end # of loop2
end # of loop1
...

in haml becomes
...
loop1
  loop2
    code for loop2
...

p.s. отступ на 2 также, пробелы не табуляция.

...