背景信息:嗨,我有一个使用Spree 3.2.0.rc1 gem的rails 5.0.3应用程序,每个功能都运行正常,我只修改了一些视图。
目标:我的商店总共销售的变种少于12个,所以我希望我的客户可以更快地将商品添加到购物车中。
问题:如何修改购物车,以便我可以使用不同的提交按钮向购物车添加多个订单项
谢谢!
答案 0 :(得分:1)
为了实现目标,您可以在checkout controller
中checkout
创建一个单独的操作,并在那里定义您的逻辑。
它看起来像下面给出的代码片段
def checkout
order = current_order(create_order_if_necessary: true)
errors = []
Variant.all.each do |variant|
begin
order.contents.add(variant)
rescue ActiveRecord::RecordInvalid => e
errors << e.record.errors.full_messages.join(", ")
end
end
if errors.present?
flash[:error] = errors
redirect_back_or_default(spree.root_path)
else
flash[:success] = 'All Products added'
respond_with(order) do |format|
format.html { redirect_to cart_path }
end
end
end
您仍然可以通过移动
来重构此代码 Variant.all.each do |variant|
begin
order.contents.add(variant)
rescue ActiveRecord::RecordInvalid => e
errors << e.record.errors.full_messages.join(", ")
end
end
此逻辑作为variant model
中的类方法。
如果您仍然遇到任何问题,请告诉我