使用content_tag创建代码而不缩进

时间:2014-08-08 03:53:39

标签: ruby-on-rails ruby

我尝试使用content_tag功能将代码段插入到我的页面中。以下是我的代码示例

src_code = 'my code ...'
content_tag :pre do
  content_tag :code do
    src_code
  end
end

src_code变量存储此字符串的位置:

#include <stdio.h>
int main(void) {
  do some stuff...
}

运行后,此代码输出以下标记:

<pre><code>#include <stdio.h>
  int main(void) {
    do some stuff...
  }
</code></pre>

问题是开始标记后面的第二行有一个额外的缩进级别。原始代码段在主函数内只有一个制表符缩进。

这是我在浏览器中看到的内容:

#include <stdio.h>
  int main(void) {
    do some stuff...
  }

除第一行外,其他所有内容都有额外的缩进级别。如何阻止content_tag函数添加额外的缩进?

1 个答案:

答案 0 :(得分:0)

经过大量的搜索和测试,我终于找到了问题所在。问题不在于include_tag如何生成标记,它工作得很好。问题是当Haml呈现页面的其余部分时,它正在为标记添加额外的选项卡。这SO question然后有助于解决我的问题。只需在呈现我的内容之前调用preserve,就可以保持间距和新行保持不变。

相关问题