所以我有@line_items,属于@cart。我想让我的购物车清空而不刷新页面。我的购物车模板中设置button_toAJAX on Rails不适用于我
<%= button_to 'Empty cart' , cart, :remote => true, :method => :delete,
:confirm => 'Are you sure?' %>
$('#cart').html("<%= escape_javascript(render(@cart)) %>");
作品刷新后只会破坏方法carts_controller
def destroy
@cart = current_cart
@cart.line_items.destroy
session[:cart_id] = nil
respond_to do |format|
format.html { redirect_to(store_url, :notice => 'Your cart is currently empty') }
format.js
format.xml { head :ok }
end
end
和destroy.js.erb。我想,当按下按钮时,购物车被清空,所以当rails呈现@cart时,它应该显示为空。也许我错了?
您是否使用浏览器中的开发人员工具栏检查了您的AJAX操作?确保它的参数是正确的,这是一个POST操作,它返回HTTP代码200,并且任何结果(例如在XML中)都是正确的。 – halfer 2013-02-20 22:06:35
您应该在'format.html ...'行的上方添加'format.js'。 – mccannf 2013-02-20 22:19:41
其实我有format.js在我的代码,对不起,我刚刚发布的版本,当我试图通过line_items控制器 – 2013-02-20 22:23:45