2

我尝试制作一个完整的 DIV 作为链接,但它只是工作。这就是我所拥有的:

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

但不知何故,Rails 正在使它成为:

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

我究竟做错了什么?它应该生成为:

<a href="/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="/users/1/orders">Open bestellingen</a>
    </div>
  </div>
</a>
4

1 回答 1

1

我看到的第一件事是您有一个嵌套在链接中的链接,这是行不通的。

听起来您想要的行为是一个链接(1),它仅在存在 current_orders 时才存在(如果没有,则只显示一条消息),以及(2)可点击区域是整个 div。它是否正确?

如果是这样,(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')
        =@current_orders
- else
  .current_orders.box.tile.one_third.lightblue
    =t('.no_current_orders')
于 2013-05-17T22:28:54.770 回答