如果我没有在视图上指定选项,如何显示面包屑?

时间:2013-06-01 21:12:08

标签: ruby-on-rails

我目前有使用gem的面包屑,但我不知道如何控制其输出。现在,我想在视图- show_breadcrumbs false中添加这样的内容,然后让它不显示,但我不确定我该怎么做。我对yield / blocks不太熟悉。有人能告诉我怎么写这个吗?

这是我的尝试:

在我的帮手中:

  def show_breadcrumbs(show=true)
    if show
      render :partial => 'layouts/breadcrumbs'
    end
  end

在我的application.html.haml中: = yield :show_breadcrumbs

在我看来: - show_breadcrumbs false

1 个答案:

答案 0 :(得分:2)

您应该使用yield and content_for方法:

在布局application.html.haml中:

= content_for?(:breadcrumbs) ? yield(:breadcrumbs) : render(:partial => 'layouts/breadcrumbs') %>

除非您在视图中另行指定,否则这将默认呈现面包屑:

content_for(:breadcrumbs, '')  # to hide the breadcrumbs.

content_for(:breadcrumbs, 'anything else')  # to replace breadcrumbs with something else.