如何在haml中呈现包含if / else语句的部分内容

时间:2015-12-30 12:44:02

标签: ruby haml middleman padrino

我有一个类似的部分:

/ _some_partial.md.haml

%div.container
  %div.optional-row
    = yield

有这样的观点:

/ some_view.html.haml

---
layout: some_layout
---

= partial "some_partial" do
  %p Content here
...

但是,我希望在某些地方使用some_partial包装器呈现%div.optional-row,而不是其他地方。这是用if/ else声明可以实现的吗?

我设想使用content_for的解决方案,看起来像:

/ _some_partial.md.haml

%div.container
  - if content_for?(:optional_row)
    %div.optional-row
      = yield :optional_row
  - else
    = yield

使用

/ some_view.html.haml

---
layout: some_layout
---

- content_for :optional_row do
  = partial "some_partial" do
    %p Content here
...

我知道这是错误的(它返回TypeError),但我希望它能解释我的思考过程。

This question似乎在某种程度上回答了我的问题,但它没有解释如何使用if/ else条件渲染部分内容。

聚苯乙烯。我正在使用Middleman,因此扔掉了Padrino标签

0 个答案:

没有答案