Ruby on Rails - 仅当content_for?(:partial)为true时才将类添加到body

时间:2016-05-11 19:50:16

标签: ruby-on-rails ruby haml

我的application.html.haml文件中有一个:sticky_footer区域:

= yield :sticky_footer

如果sticky_footer区域内有内容,我想将has-sticky-footer类添加到body节点。

我尝试过:

body{class: content_for?(:sticky_footer) ? "has-sticky-footer" : "no-sticky-footer"}

然而,即使稍后在代码中定义了content_for,这似乎也会被评估为假。

我还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

  

然而,即使content_for是,也似乎评估为false   稍后在代码中定义。

没错。在测试content_for?时,它尚未定义,因此值为false。

首先定义......在正文行之前

-content_for :sticky_footer do
  # define the content here

然后插入身体的类

稍后在代码中,您可以生成content_for

=content_for :sticky_footer
# or
=yield :sticky_footer