在帮助程序中使用XMLBuilder进行适当的缩进

时间:2010-05-11 04:51:07

标签: ruby-on-rails xhtml markup

我正在尝试使用视图帮助程序根据您是否登录创建一些动态链接。

为了简化代码可读性,我想要返回的是:

<ul class="right">
  <li><a href="#">Login</a></li>
  <li><a href="#">Register</a></li>
</ul>

在视图帮助器中,我有这个Ruby代码:

def loginh
  xm = Builder::XmlMarkup.new(:indent=>2, :margin=>4)
  xm.ul("class" => "right") {
     xm.li('class' => 'text') { 
        xm.text("test") 
     }
  }
end

在视图中,调用登录助手的行已经缩进了4个级别。因此,第一行变得“倾斜”,所以在视图中我有:

        <%= loginh %>

结果是:

                <ul class="right"> 
      <li class="text"> 
        <text>test</text> 
      </li> 
    </ul> 

除第一行外,你可以看到它完美无缺。 在&lt;%= loginh%&gt;之前,第一行似乎受到缩进的影响。被称为。

我可以通过删除&lt;%= loginh%&gt;之前的缩进来轻松解决这个问题。 - 但实质上我会牺牲标记可读性的代码可读性。这不是我想做的事。

有什么方法可以删除开头的空格吗?

1 个答案:

答案 0 :(得分:1)

&lt;%= loginh - %&gt;几乎就是你想要的。

技巧是结束部分的减号,它会抑制额外的空格。

或者,您可以使用反引号(“字符”)通过HTMLTidy管道输出。