在添加rails link_to,mail_to之后,haml删除前面的空格

时间:2012-02-29 12:29:17

标签: ruby-on-rails haml

我正在用haml编写文本:

Blab bla for any questions contact us on me@foo.com.

所以haml看起来像

%p
  Blab bla for any questions contact us on
  = mail_to 'me@foo.com'
  .   

note.是ascii中的点,我也可以用= '.'替换该行(渲染字符串点)

但渲染的文字看起来像

Blab bla for any questions contact us on me@foo.com .

区别在于最后点之前的空白

我想出的解决方案是

%p
  Blab bla for any questions contact us on
  = mail_to('me@foo.com') + '.'

这只是我在寻找最佳实践:) thx

3 个答案:

答案 0 :(得分:10)

我会用这个:

%p
  Blab bla for any questions contact us on #{mail_to('me@foo.com')}.

另见the Haml FAQ

  

表达文档的结构并表达内联格式是两个非常不同的问题。 Haml主要是为结构而设计的,因此处理格式化的最佳方法是将其留给其他专为其设计的语言。

在这种情况下,您不需要其他语言,只需插入函数。

答案 1 :(得分:5)

如果您使用==表示法,对于带有mail_to的行,您应该能够做到你想要的,喜欢这个:

== #{mail_to 'me@foo.com'}.

==表示法对整行执行插值。

答案 2 :(得分:4)

HAML a bunch of helpers可以轻松解决此类问题。 succeed解决了尾点问题。

= succeed '.' do
   = link_to t('info.terms'), info_path(:terms)