【问题标题】:Rails HAML div as link -> not getting it workedRails HAML div 作为链接-> 无法正常工作
【发布时间】:2013-05-13 04:09:31
【问题描述】:

我尝试制作一个完整的 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>

【问题讨论】:

    标签: ruby-on-rails hyperlink haml


    【解决方案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')
    

    【讨论】:

      猜你喜欢
      • 2012-12-27
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 2015-07-05
      • 2017-04-30
      • 2017-11-28
      相关资源
      最近更新 更多