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

equ*_*nt8 5 haml ruby-on-rails

我正在用haml编写文本:

Blab bla for any questions contact us on me@foo.com.
Run Code Online (Sandbox Code Playgroud)

所以haml看起来像

%p
  Blab bla for any questions contact us on
  = mail_to 'me@foo.com'
  .   
Run Code Online (Sandbox Code Playgroud)

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

但渲染的文字看起来像

Blab bla for any questions contact us on me@foo.com .
Run Code Online (Sandbox Code Playgroud)

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

我想出的解决方案就是

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

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

mat*_*att 10

我用这个:

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

另请参阅Haml常见问题解答:

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

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


The*_*hop 5

如果你使用==符号,对于mail_to的行,你应该能够做你想要的,喜欢这个:

== #{mail_to 'me@foo.com'}.
Run Code Online (Sandbox Code Playgroud)

==符号执行用于整行内插.


ger*_*tas 5

HAML 有一堆帮助程序可以轻松解决此类情况。succeed解决尾随点问题。

= succeed '.' do
   = link_to t('info.terms'), info_path(:terms)
Run Code Online (Sandbox Code Playgroud)