2013-05-17 37 views
2

我尝试做一个完整的DIV作为链接,但它只是工作。这是我有:Rails HAML div作为链接 - >没有得到它的工作

= link_to (user_orders_path(current_user)) do 
    .current_orders.box.tile.one_third.lightblue 
    .count 
     %i.icon-shopping-cart 
     [email protected]_orders 
    .link 
     - if @current_orders > 0 
     = link_to t('.current_orders'), user_orders_path(current_user) 
     - else 
     = t('.no_current_orders') 

但不知何故,Rails是使得它作为:

<a href="https://stackoverflow.com/users/1/orders"></a> 
<div id="current_orders" class="box tile one_third lightblue"> 
    <a href="https://stackoverflow.com/users/1/orders"> 
    <div class="count"> 
     <i class="icon-shopping-cart"></i> 
     3 
    </div> 
    </a> 
    <div class="link"> 
    <a href="https://stackoverflow.com/users/1/orders"> </a> 
    <a href="https://stackoverflow.com/users/1/orders">Open bestellingen</a> 
    </div> 
</div> 

我在做什么错?

<a href="https://stackoverflow.com/users/1/orders"> 

    <div id="current_orders" class="box tile one_third lightblue"> 

    <div class="count"> 
     <i class="icon-shopping-cart"></i> 
     3 
    </div> 

    <div class="link"> 
     <a href="https://stackoverflow.com/users/1/orders">Open bestellingen</a> 
    </div> 
    </div> 
</a> 

回答

1

我看到的第一件事情是,你有嵌套链接,这将无法正常工作中的链接:作为应该产生。

这听起来像你想要的行为是只有当current_orders(只显示一条消息,如果没有)和(2)可点击区域是整个div的链接(1)。它是否正确?如果是这样,(1)使用你的if语句来有条件地呈现你的div,并(2)把div放在'%a'标签内,像这样。可能是这样的:

-if @current_orders > 0 
    %a{:href => user_orders_path(current_user)} 
    .current_orders.box.tile.one_third.lightblue 
     .count 
     %i.icon-shopping-cart 
     =t('.current_orders') 
     [email protected]_orders 
- else 
    .current_orders.box.tile.one_third.lightblue 
    =t('.no_current_orders') 
+0

太棒了!这确实在起作用。谢谢! – Jerry