当用户点击“添加到订单”时,我正在尝试将AJAX合并到我的rails应用程序中。按钮。我希望在没有页面重新加载的情况下将项目添加到订单中。当我点击“添加到订单”时,ajax请求会多次发送,导致许多商品被添加到我的订单而不是仅仅1个商品。
这是我的link_to标签,用于触发ajax请求:
<%= link_to ' ', :method => :post, :remote => true %>
以下是我的产品代码&#39;控制器和&#39;购买&#39;动作:
def buy
respond_to do |format|
format.html { redirect_to ' ' }
format.js
end
根据我的理解,默认的rails操作是加载app / views / products / buy.js.erb文件并执行该文件中的命令。 这是我在该文件中的内容:
$("#order-panel").html("").append("<%= j render 'order_summary' %>");
我基本上用这个文件中的新模板覆盖了以前的html:
_order_summary.html.erb
此部分包含以下代码:
<div class="panel-heading">
<span class='glyphicon glyphicon-tags'></span><span class="text">Order Summary</span>
</div>
<div class="panel-body">
<% if current_order %>
<% if current_order.total_items == 0 %>
<div class="order-summary-text empty-order">Your order is empty.</div>
<% else %>
<div class="order-summary-text">yadayada</div>
<div class="order-btns">
<%= link_to ' ' %>
<%= link_to ' ' %>
</div>
<% end %>
<% end %>
有谁知道为什么我的多个项目被添加而不是1?
提前致谢!