删除Haml中块中的空格

时间:2012-12-28 13:31:56

标签: ruby-on-rails haml

我有这个:

= link_to user_path(f.object.user) do
  %span.hourly-rate>= f.object.user.hourly_rate.to_currency
  \/hour

呈现为:

<a href="/users/44"><span class='hourly-rate'>$16</span>/hour
</a>

关闭标记位于单独的行中。这会导致链接看起来很有趣(如悬停时)

The underlining goes for one character too long

解决方案是让标记看起来像:

<a href="/users/44"><span class='hourly-rate'>$16</span>/hour</a>

但我还没有找到一种方法在Haml做到这一点。如果可能的话,我宁愿继续使用link_to的块形式(我想不使用该块会导致代码更加混乱,但此时我对任何事情都持开放态度。)

Tangent :我想如果我使用:ugly Haml选项,这将会被修复。我的Haml::Template.options[:ugly] = true中有config/environments/development.rb,我的Gemfile中有haml-rails(我知道它不包括:ugly,但值得一提),我有一个初始化器;;

# config/initializers/haml.rb
Haml::Template.options[:format] = :html5
Haml::Template.options[:ugly] = true

...但代码仍然不丑:(任何想法为什么不呢?

2 个答案:

答案 0 :(得分:1)

如果你可以使用另一个div内的内容,你可以使用:

= link_to user_path(f.object.user) do
  %div<>
    %span.hourly-rate>= f.object.user.hourly_rate.to_currency
    \/hour

答案 1 :(得分:1)

javascript正在使用该范围来获取其价值(在这种情况下,用户的小时费率) - 它根本不用于CSS。

因此,我最终删除了跨度并将用户的每小时费率添加为单独字段的data-属性。所以链接的最终标记是

= link_to f.object.user.hourly_rate.to_currency + "/hour", user_path(f.object.user)