有条件的顶级标签HAML没有使用部分

时间:2013-03-06 20:13:16

标签: ruby-on-rails haml

有条件地添加更高级别的html元素而不重复内部内容的优雅方法是什么?如何在不使用partials(一个文件中的所有内容)的情况下实现这一目标?

例如,假设我有这个内容,并且我想基于某些条件将所有内容包装在div中,因此(img,'some code'x 3)不会重复。

- unless p.product_url.nil?
  #myDiv
    %img{src: img_url}
    some code
    some code
    some code
- else
  %img{src: img_url}
  some code
  some code
  some code

1 个答案:

答案 0 :(得分:2)

- content_for :inner_contents do
  %img{src: img_url}
  some code
  some code
  some code

- unless p.product_url.nil?
  #myDiv
    = yield :inner_contents
- else
  = yield :inner_contents

这是基于https://stackoverflow.com/a/7240476/605707,如Deefour所述。