簡體   English   中英

如何在塊中產生多個部分?

[英]How can I yield more than one partial in a 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內容。 為什么?

將塊itsef而不是其返回值傳遞給content_tag:

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

其他方法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM