我遇到了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>
我很茫然,任何帮助都会很棒。感谢。
答案 0 :(得分:-1)
如果你真的想要一个链接中的链接你可以直接使用haml而不是rails(或你正在使用的框架)方法link_to:
.item
%a{ :href => '/page' }
.item-info
%h3 Item name
%a{ :href => '/different_page' } Link
如上所述,link_to正在帮助您对浏览器做正确的事情。可能很高兴意识到这不是haml问题,而是link_to实现。
更新:澄清 - 浏览器仍然无法很好地呈现它,但生成的标记将按照要求进行。