2011-04-15 86 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')