加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何在一个块中产生多个部分?

发布时间:2020-12-17 02:25:20 所属栏目:百科 来源:网络整理
导读:我最近问了一个类似的问题,尽管那是为了让多个块作为参数.这个问题更加直接. 我遇到的问题是,我有一个帮助方法,我希望能够将内容作为一个块传递给渲染.但是,如果我添加多个部分,则仅渲染块中的??最后一个.方法如下. def bootrap_panel(title,klass = 'primar
我最近问了一个类似的问题,尽管那是为了让多个块作为参数.这个问题更加直接.

我遇到的问题是,我有一个帮助方法,我希望能够将内容作为一个块传递给渲染.但是,如果我添加多个部分,则仅渲染块中的??最后一个.方法如下.

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')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读