2015-03-09 6 views
1

В "show.html.haml", у меня есть два делает так:вложенной визуализации в Haml

= render 'project_header', :locals => {@set_tab => "current"} 
= render 'project_toolbar' 

мой "_project_header.html.haml" выглядит следующим образом:

%article.project 
    %header 
    %h1.generated 
     #some_code 
    %h2 
     #some_code 

и мой "_project_toolbar.html.haml" выглядит следующим образом:

%section.toolbar 
    #some_code 

Этот конец в HTML, который выглядит примерно так:

<article class="project"> 
    #some_code 
</article> 
<section class="toolbar"> 
    #some_code 
</section> 

Что я хочу вместо

<article class="project"> 
    #some_code 
    <section class="toolbar"> 
     #some_code 
    </section> 
</article> 

Я знаю, что там может быть работа вокруг как рендеринг мой «project_toolbar» внутри «project_header». Но они являются двумя логически независимыми объектами, поэтому я не хочу этого делать. Любые предложения?

+1

Я не вижу другого пути, кроме оказания 'project_toolbar' внутри 'project_header'. – Pavan

+0

Вы знаете, что другой способ может быть снят с «статьи», а запись - непосредственно перед рендерингом. Тем не менее, если бы это было erb, это могло бы быть возможно. Неужели haml не может быть лучше, чем erb? – sonalkr132

ответ

0

Его можно в Haml, один путь

%article.project 
    = render 'project_header', :locals => {@set_tab => "current"} 
    = render 'project_toolbar' 

или другие способы есть, в _project_header.html.haml, оказывают _project_toolbar.html.haml

%article.project 
    %header 
    %h1.generated 
     #some_code 
    %h2 
     #some_code 
    = render 'project_toolbar' 
+0

Я догадываюсь, что я пытаюсь спросить, что бы было эквивалентно тому, чтобы делать это в erb? В erb мы могли бы просто открыть тег статьи в «project_header» и закрыть его в любом месте, где захотим. – sonalkr132

+0

haml закрывает все теги самим собой, поэтому я не уверен, что можно делать то, что вы хотите, как в erb, но я думаю, что этот ответ в любом случае чист. –

Смежные вопросы