バリエーションのない商品がある場合、それを単独で選択して、カートにラインアイテムとして追加しようとしています。私はこれを次のように行っています:
私が送っている私のパラメータ:
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
ステートメントのその他の部分にバリアントが見つからないようです。@ size / @ colorがバリアントのある製品に渡されている場合は、完全に正常に機能します。紛らわしい部分は次のとおりです。コンソールでこのコードを正確に実行すると、正常に機能します。