【发布时间】:2015-12-08 15:04:11
【问题描述】:
我最近问了一个类似的问题,尽管它旨在将多个块作为参数。这个问题比较直接。
我遇到的问题是,我有一个辅助方法,我希望能够将内容作为块传递以进行渲染。但是,如果我添加多个部分,则只会呈现块中的最后一个。方法如下。
def bootrap_panel(title, klass = 'primary', &block)
content_tag(:div, panel_heading(title) + panel_body(&block), class: 'panel panel-' + klass)
end
def panel_body(&block)
content_tag(:div, yield, class: 'panel-body') if block_given?
end
这里是我遇到的一个问题示例,页面上仅显示最后一部分。
=bootrap_panel 'Panels', 'primary' do
- render "dynamic_panels/partials/new"
- render "dynamic_panels/partials/dynamic_panels", dynamic_panels: dynamic_page.dynamic_panels
我的第一个想法是,我应该先将部分输出到数组或其他东西,然后显示(我不确定我是否能够做到)。其次,我使用“-”运算符而不是“=”运算符在 haml 中显示 ruby 内容。为什么?
【问题讨论】:
-
您是否尝试在您的
render通话中使用=而不是-?如果是,发生了什么? -
如果我切换它们,那么面板不会显示,但两个部分都会显示!
-
那你为什么不把它们都做成
=?
标签: ruby-on-rails ruby haml