我尝试将完整的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>
答案 0 :(得分: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')