我正在尝试以下
带
的HAML模板#whitepanelMID
#groups_view_scroller
= render 'show' do
= render 'short_field', locals: {label: 'Name:', value: @group.name}
= render 'short_field', locals: {label: 'Description:', value: @group.description}
部分是_show.html.haml(注意使用 yield )
%table#vert_table.no_borders{ cellpadding: '0', cellspacing: '0'}
%tbody
%tr
%td{ cols: 2 } My table
= yield
和_short_field.html.haml
%tr
%th.vert_table_heads= label
%td= value
问题是产量似乎不起作用。
在HAML的render
中使用阻止的正确方法是什么?
更新
我找到了解决方法,我不喜欢。
在HAML模板中捕获输出,如
#whitepanelMID
#groups_view_scroller
- rows = capture_haml do
= render partial: 'short_field', locals: {field_label: 'Name:', value: @group.name}
= render partial: 'short_field', locals: {field_label: 'Site:', value: @group.site.description}
= render partial: 'show', locals:{ content: rows}
%br/
修改后的部分_show.html.haml带有content
变量而不是yield
%table#vert_table.no_borders{ cellpadding: '0', cellspacing: '0'}
%tbody
%tr
%td{ cols: 2 } My table
!= content
很高兴听到更好的方法!
答案 0 :(得分:4)
仅仅因为@vidaca提供的链接是ERB,我想发布HAML的等价物。
使用包装器模板时使用layout:
#whitepanelMID
#groups_view_scroller
= render layout: 'show', locals:{ table_title: 'My table'}
= render partial: 'short_field', locals: {field_label: 'Name:', value: @group.name}
= render partial: 'short_field', locals: {field_label: 'Site:', value: @group.site.desccription }
%br/
和_show.html.haml部分(包装)喜欢
%table#vert_table.no_borders{ cellpadding: '0', cellspacing: '0'}
%tbody
%tr
%td{ cols: 2 }= table_title
= yield
包装的部分(在这种情况下为short_field
)按原样工作。
希望帮助某人。