Ich bin eine Spree-App laufen.undefined Methode `+ 'für Nil: NilClass Spree
Ich bekomme unter Fehler, wenn ich versuche, ein Produkt in den Warenkorb hinzuzufügen. nur
undefined method `+' for nil:NilClass
Dieser Fehler kommt, wenn ich option types
und variants
des gleichen Produkts hinzuzufügen.
Ich bin mir nicht sicher, was genau hier falsch läuft, weil ich keine Änderungen im Code oder so etwas mache.
Dies ist die extrahierte Quelle, die es zeigt.
if quantity.between?(1, 2_147_483_647)
begin
order.contents.add(variant, quantity, options)
rescue ActiveRecord::RecordInvalid => e
error = e.record.errors.full_messages.join(", ")
end
Hier ist meine Bestellung Controller populate
Funktion.
# Adds a new item to the order (creating a new order if none already exists)
def populate
order = current_order(create_order_if_necessary: true)
variant = Spree::Variant.find(params[:variant_id])
quantity = params[:quantity].to_i
options = params[:options] || {}
# 2,147,483,647 is crazy. See issue #2695.
if quantity.between?(1, 2_147_483_647)
begin
order.contents.add(variant, quantity, options)
rescue ActiveRecord::RecordInvalid => e
error = e.record.errors.full_messages.join(", ")
end
else
error = Spree.t(:please_enter_reasonable_quantity)
end
if error
flash[:error] = error
redirect_back_or_default(spree.root_path)
else
respond_with(order) do |format|
format.html { redirect_to cart_path }
end
end
end
Bitte helfen Sie mir hier.
Könnten Sie bitte den Stacktrace posten? Vor allem, wo passiert dieser Fehler und der Code mit der Zeilennummer, wo es passiert? – born4new
Sind Sie sicher, dass 'Variante',' Menge', 'Optionen' alle Nicht-Null-Werte sind? –
@AnthonyE Ich habe ein Produkt, dann Optionen als 'Größe wählen 'hinzugefügt und dann habe ich zwei Varianten für es als' 500 gms' und '750gms' hinzugefügt und ich habe ihre Menge im Lager erhöht. So möglicherweise sie nicht-Null-Wert – Suraj