当我有一个没有任何变种的产品时,我试图自己选择它作为一个行项目添加到我的购物车。我通过以下方式做到这一点:
My Params我要寄:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"cYWaQT2T3V8huhPaZZO0A2PIuEp2/hO3ar9svRTKKG8=", "product_id"=>"1060500594", "variants"=>{"1013589418"=>"1"}}
@order = current_order(true)
@size = Spree::OptionValue.find(params[:size]) if params[:size]
@color = Spree::OptionValue.find(params[:color]) if params[:color]
@prod_id = params[:product_id]
if @size && @color
@variant = Spree::Variant.joins(:option_values).where("spree_option_values.id in (?) AND product_id = ?", [@size, @color], @prod_id).first
else
@variant = Spree::Product.find(@prod_id).master
end
似乎在声明的Else-Portion中找不到Variant。如果在带有变体的Product上传入@ size / @颜色,它的工作完全正常。 令人困惑的部分是 - 如果我在控制台中执行完全正确的代码,它就可以正常工作。