HAML:删除“link_to”后的空格

时间:2011-04-15 17:08:21

标签: ruby-on-rails haml

以下代码在HTML中留下空格:

= link_to "Login", "#"

通常情况下,HAML允许通过添加“>”来删除它在该行的末尾,例如:

%input#query{:type => "text", :value => "Search"}>

然而,当插入Rails代码时,这似乎是不可能的。

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:22)

带有span的解决方案并不理想,因为它会添加一个需要处理的不必要的html标记,如果你想避免<span>你应该使用HAML的succeed

= succeed "," do
  = link_to "Login", "#"

将导致呈现以下HTML:

Login,

而不是

Login ,

请注意,如果您想获得以下结果:

Login,Profile

即。逗号和两个链接之间没有任何空格,您应该执行以下操作:

= succeed link_to "Profile", '#' do
  = succeed "," do
    = link_to "Login", '#'

这非常繁琐

答案 1 :(得分:19)

这个怎么样?

%span>= link_to "Login", "#"

它在链接周围增加了额外的跨度,但这些非常无害。

我发现haml可能会遇到一些问题:(

答案 2 :(得分:8)

你可以在下一行>

= link_to "Login", "#"
#something_else>

答案 3 :(得分:0)

对于访问此主题的任何人,我发现当链接位于句子末尾时,我最需要删除空格。

我通常会使用:

= link_to("Login", '#) + '. '

导致:

<a href="#">Login</a>.

答案 4 :(得分:0)

这是使用:ruby过滤器删除多个导轨线之间空间的另一个糟糕的替代解决方案:

:ruby
             haml_io.write f.hidden_field('params_ar[][units]', value: 'time')
             haml_io.write f.text_field("params_ar[][minutes]", value:pars[param_num][:minutes],class:'time-input minutes', placeholder:'mm')
             haml_io.write ':'
             haml_io.write f.text_field("params_ar[][seconds]", value:pars[param_num][:seconds],class:'time-input seconds' ,placeholder:'ss')