gpt4 book ai didi

ruby-on-rails - 我怎样才能在一个 block 中产生多个部分?

转载 作者:数据小太阳 更新时间:2023-10-29 07:33:38 27 4
gpt4 key购买 nike

我最近问了一个类似的问题,尽管它的目的是将多个 block 作为参数。这个问题有点紧迫。

我遇到的问题是,我有一个辅助方法,我希望能够将内容作为 block 传递给渲染。但是,如果我添加多个部分,则只会呈现 block 中的最后一个部分。方法如下。

  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​​ 内容。为什么?

最佳答案

将 block 本身而不是其返回值传递给 content_tag:

content_tag(:div, class: 'panel-body', &block)

其他方法:

content_tag(:div, capture(&block), class: 'panel-body')

关于ruby-on-rails - 我怎样才能在一个 block 中产生多个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com