2

別のリンク内にリンクをネストする HAML に問題があります。インデントは HAML で完全に正しいですが、HTML は非常に間違って出力されています。

元の HAML コード:

.item
  =link_to page_path do
    .item-info
      %h3 Item name
      =link_to 'Link', different_page_path

Chrome の inspect 要素で HTML を表示すると、次のようになります。

<a href="/page"></a>
<div class="item-info">
  <a href="/page">
    <h3>Item name</h3>
  </a>
  <a href="/different_page">Link</a>
</div>

しかし、ソースを表示すると正しく表示されますが、ページを表示するとまだ混乱しています:

<a href="/page">
  <div class='item-info'>
    <h3>Item name</h3>
    <a href="/different_page">Link</a>
  </div>
</a>

私は途方に暮れており、どんな助けも素晴らしいでしょう。ありがとう。

4

1 に答える 1

-1

リンク内にリンクが本当に必要な場合は、レール (または使用しているフレームワーク) メソッド link_to の代わりに直接 haml を使用できます。

.item
  %a{ :href => '/page' }
    .item-info
      %h3 Item name
      %a{ :href => '/different_page' } Link

link_to は、上記で説明したように、ブラウザから正しいことを行うのに役立ちます。これは haml の問題ではなく、link_to の実装の問題であることに注意してください。

更新: 明確化 - ブラウザによって適切にレンダリングされませんが、生成されるマークアップは要求どおりになります。

于 2012-12-05T18:58:54.370 に答える