Erb视图中不需要的空格

时间:2011-08-14 07:38:22

标签: ruby sinatra erb

这是我的sinatra代码:

get '/' do
    foo = 'not bar'
    erb :index
end

我的layout.erb

<html>
  <head></head>
  <body>
    <%= yield %>
  </body>
</html>

我的index.erb

<div class="container">
</div>

现在的问题是 screen shot of problem

额外的文字(以黄色点亮)扰乱了我的设计 知道为什么会这样吗? 如果我不使用布局并且仅使用带有所有html代码的index.erb

,则不会发生这种情况

[编辑:] 使用&lt;%= yield - %&gt;抛出错误(意外的tUMINUS,期待kEND; @ _out_buf.concat“”; - yield - ; @ _out_buf.concat“\ n”).... layout.rb

2 个答案:

答案 0 :(得分:4)

我最好的猜测是来自layout.erb中的软标签的4个空格

<body>
____<%= yield %>
</body>

试试<body><%= yield%></body>

我一直在使用Slim 和

body
= yield

永远不会让我失去空白

讨厌ERB

答案 1 :(得分:3)

您可以使用* trim_mode *参数设置ERB

来自http://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB.html#method-c-new

如果trim_mode传递一个包含一个或多个以下修饰符的String,ERB将调整其列出的代码生成:

%  enables Ruby code processing for lines beginning with %
<> omit newline for lines starting with <% and ending in %>
>  omit newline for lines ending in %>