Html 嵌套块

Html 嵌套块,html,ruby-on-rails,haml,Html,Ruby On Rails,Haml,我是HAML的新手。那么在哈姆尔的这个呢 -if @link.is_active %a -else #custom-div .custom-class 所以我想看看某些条件是否成立 <a><div id = "custom-div"><div class = "custom-class"></div></div></a> 有什么建议吗?Haml 4.1.

我是HAML的新手。那么在哈姆尔的这个呢

    -if @link.is_active
      %a
    -else
       #custom-div
         .custom-class
所以我想看看某些条件是否成立

    <a><div id = "custom-div"><div class = "custom-class"></div></div></a>
有什么建议吗?

Haml 4.1.0.beta.1有一个。您可以这样使用它:

- haml_tag_if @link.is_active, :a do
  #custom-div
     .custom-class
如果您不能使用4.1.0,您可以自己添加助手,这相当简单。这应该起作用:

def haml_tag_if(condition, *tag)
  if condition
    haml_tag(*tag){ yield }
  else
    yield
  end
end

根据
#自定义div.自定义类
的复杂程度,如果,您可以使用
链接到_:


您可以尝试使用HAMLYou的
surround
方法,您可以这样做
-surround(@link.is\u active?”%a:“@link.is\u active?”%a:“)do#custom div.custom class
好的,我会尝试,但是如果我对1-2个ESLIF和ELSE有一些困难的逻辑怎么办?
- haml_tag_if @link.is_active, :a do
  #custom-div
     .custom-class
def haml_tag_if(condition, *tag)
  if condition
    haml_tag(*tag){ yield }
  else
    yield
  end
end
= link_to_if @link.is_active, "html safe linkable text here", "url to link to"