2013-05-17 79 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