Ruby on rails Spree Commerce-绕过OrderController的重定向#填充
除了填充订单外,这些“添加到购物车”按钮都重定向到购物车页面。这在大多数情况下都很好,但是有几个按钮我想简单地填充顺序,而不重定向浏览器。例如,您可以单击按钮,购物车中的数字将增加,但您将停留在同一页面上。这可能吗?我已经找到了(我认为)重定向发生的地方。也许有某种指示器我可以通过按钮触发旁路 来自订单\控制器\装饰器Ruby on rails Spree Commerce-绕过OrderController的重定向#填充,ruby-on-rails,ruby,redirect,spree,Ruby On Rails,Ruby,Redirect,Spree,除了填充订单外,这些“添加到购物车”按钮都重定向到购物车页面。这在大多数情况下都很好,但是有几个按钮我想简单地填充顺序,而不重定向浏览器。例如,您可以单击按钮,购物车中的数字将增加,但您将停留在同一页面上。这可能吗?我已经找到了(我认为)重定向发生的地方。也许有某种指示器我可以通过按钮触发旁路 来自订单\控制器\装饰器 def populate Spree::Order.transaction do current_order(true).lock! # force-create and
def populate
Spree::Order.transaction do
current_order(true).lock! # force-create and lock
populator = Spree::OrderPopulator.new(current_order(true), current_currency)
if populator.populate(params.slice(:products, :variants, :quantity, :product_test_types))
current_order.ensure_updated_shipments
respond_with(@order) do |format|
Rails.logger.debug "** Successful populate"
format.html { redirect_to cart_path }
end
else
msg = populator.errors.full_messages.join(" ")
flash[:error] = msg
Rails.logger.debug "** Unuccessful populate: [#{msg}]"
redirect_to cart_path
end
end
end
您有两个选择:
- 在我的spree 1-3-stable站点上所做的是,
按钮正在调用一个ajax方法来填充订单,因此不需要重定向add to cart
- 从您的方法中删除
,并重定向回您来自的页面重定向到购物车路径
data = $("#order_form").serialize();
#add additional info if needed
data= data + '&size=' + user_selected_size
$.ajax
type: 'POST'
url: $("#order_form").attr("action")
data: data
success: (result) ->
#your success method for handeling what happens after the cart is populated
嘿,谢谢,伙计。你能详细介绍一下ajax方法吗?我只使用了JSON请求,所以我不确定该怎么做。@user2985714我用coffeescript中的ajax用法示例编辑了答案