0

私はこれを持っています:

= 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>

終了タグは別の行にあります。これにより、下線がある場合(ホバーなど)にリンクがおかしくなります。

下線が1文字長すぎます

解決策は、マークアップを次のようにすることです。

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

しかし、私はHamlでそれを行う方法を見つけていません。link_to可能であれば、のブロック形式を使い続けたいと思います(ブロックを使用しないと、コードがさらに乱雑になると思いますが、この時点では何でも構いません)。

接線:ugly: Hamlオプションを使用していれば、これは修正されると思います。私はHaml::Template.options[:ugly] = true自分config/environments/development.rbの中にありhaml-rails、Gemfileにもあります(含まれていないことはわかっています:uglyが、言及する価値があります)。また、;を使用したイニシャライザーがあります。

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

...しかし、コードはまだ醜いものではありません:(何かアイデアはありませんか?

4

2 に答える 2

1

コンテンツを別のコンテンツにラップして生活できる場合はdiv、次を使用できます。

= link_to user_path(f.object.user) do
  %div<>
    %span.hourly-rate>= f.object.user.hourly_rate.to_currency
    \/hour
于 2012-12-28T14:12:53.643 に答える
1

このスパンは、その値 (この場合はユーザーの時給) を取得するために JavaScript によって使用されていましたが、CSS にはまったく使用されていませんでした。

したがって、スパンを削除し、ユーザーの時給をdata-別のフィールドの属性として追加することになりました。したがって、リンクの最終的なマークアップは

= link_to f.object.user.hourly_rate.to_currency + "/hour", user_path(f.object.user)
于 2012-12-31T06:00:35.193 に答える