2017-08-08 48 views
0

背景信息:嗨,我有一个使用Spree 3.2.0.rc1 gem的rails 5.0.3应用程序,每个功能都工作正常,而且我已经只修改了一些意见。目标:我的商店总共销售的商品少于12种,所以我想让我的客户有更快的方式将商品添加到购物车中。在单个提交中添加多个订单项,Spree 3,RoR 5

问题:我如何才能修改购物车,这样我可以用不同的多行项添加到购物车提交按钮

谢谢!

回答

1

为了实现您的目标,您可以在checkout controller中创建一个单独的操作,比如说checkout并在那里定义您的逻辑。

这将通过移动

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一个类的方法类似于下面

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 

您仍然可以重构这个代码中给出的代码片段。

请让我知道如果你仍然面临任何问题

+0

谢谢,这不是我想到的,但我相信这将有助于未来! 我最终做的是修改单例页面以便将其显示为每个产品的部分,这样我就可以直接从主页添加任何产品的任何变体。 –