2011-04-15 56 views
27

下面的代码留下空白在HTML后删除空白:HAML:“的link_to”

= link_to "Login", "#" 

通常,HAML允许通过把“>”在该行的末尾,以除去它,例如:

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

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

我该如何解决这个问题?

+1

这个答案好多了,好多了: http:// stackoverflow。com/questions/1311428/haml-control-whitespace-around-text – rking 2012-07-13 22:22:21

回答

18

这个怎么样?

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

它增加了一个额外的跨度,但这些都是非常无害的。因为它会增加不必要的HTML标记,这将需要处理,如果你想避免

我发现HAML可以有一个有点问题的一些角落,这些案件:(

+1

当提供块时,这不起作用。 – benastan 2013-01-04 00:02:17

+0

用块:%span <> \ n = link_to“#”做... – benastan 2013-01-04 00:04:56

8

你可以在下面一行但>

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

谢谢,%span {:style =>“display:none;”}>似乎能正常工作,但多次使用它是一个非常糟糕的解决方案。我希望有更好的办法。 – krn 2011-04-15 17:57:43

20

与跨度的解决方案是不理想在<span>你应该使用HAML的succeed

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

,这将导致以下HTML渲染:

Login, 

而不是

Login , 

请注意,如果你想达到以下结果:

Login,Profile 

即逗号和两个环节之间没有空格无论你应该做到以下几点:

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

这是非常繁琐的

0

对于任何人来这个线程我fi nd我最需要在链接处于句尾时删除最多的空格。

我通常会使用:

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

导致:

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

0

下面是使用除去几个轨线之间的间隔另一个可怜的替代解决方案:红宝石滤波:

: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')