哈姆格式化

use*_*421 4 haml ruby-on-rails

我是haml的新手,所以我还在试图找出格式.

我有一个index.haml文件,其中包含以下代码.

%h1
  Welcome to Solidarity

Hello,
= @profile.first_name
!
Run Code Online (Sandbox Code Playgroud)

它呈现如下:

欢迎来到团结
你好,用户!

这是页面来源:

<h1>
  Welcome to Solidarity
</h1>
Hello,
frances
!
Run Code Online (Sandbox Code Playgroud)

它在@ profile.first_name和感叹号之间有一个空格.这是为什么?而且,我该如何解决?

yfe*_*lum 5

%h1 Welcome to Solidarity
Hello, #{@profile.first_name}!
Please #{link_to 'post a comment', new_comment_path}!
Run Code Online (Sandbox Code Playgroud)

<h1>Welcome to Solidarity</h1>
Hello, John!
Please <a href="/comments/new">post a comment</a>!
Run Code Online (Sandbox Code Playgroud)

请记住,在Rails 2和Haml 2中,你必须正确html-escape你发送到浏览器的任何东西(ht nex3):

Hello, #{h @profile.first_name}!
Run Code Online (Sandbox Code Playgroud)

在Rails 3和Haml 3中,默认情况下都会转义所有内容,因此您可以执行以下操作:

Hello, #{@profile.first_name}!
Run Code Online (Sandbox Code Playgroud)


cha*_*doh 5

您还可以使用"alligators"在标签之前或之后"吃掉"空白区域.来自haml-lang文档:

%img
%pre><
  foo
  bar
%img
Run Code Online (Sandbox Code Playgroud)

编译为:

<img /><pre>foo
bar</pre><img />
Run Code Online (Sandbox Code Playgroud)

虽然这也可以解决您的问题,但Justice提供的解决方案是此方案的适当标记.我以为我会提到它.