Ich arbeite an meiner RoR4 App mit dem Solidus Juwel. Als ich versuchte, seine Frontend checkout_controller # update Methode zu überschreiben (befindet sich here).Solidus/Spree + Checkout-Controller außer Kraft setzen
Ich überschreibe den Controller nach Spree's documents, aber es gab mir einen Fehler von uninitialized constant OrderUpdateAttributes
.
CheckoutController#update
als /app/controllers/spree/checkout_controller_decorator.rb
Spree::CheckoutController.class_eval do
def update
if OrderUpdateAttributes.new(@order, update_params, request_env: request.headers.env).apply
@order.temporary_address = !params[:save_user_address]
success = if @order.state == 'confirm'
@order.complete
else
@order.next
end
if !success
flash[:error] = @order.errors.full_messages.join("\n")
redirect_to(checkout_state_path(@order.state)) && return
end
if @order.completed?
@current_order = nil
flash.notice = Spree.t(:order_processed_successfully)
flash['order_completed'] = true
redirect_to completion_route
else
redirect_to checkout_state_path(@order.state)
end
else
render :edit
end
end
namens
ich diese Methode, um außer Kraft zu setzen benötigen eine Aktion, nachdem ein Auftrag abgeschlossen ist auszuführen (nach der Kasse). Gibt es etwas, das mir fehlt, um diesen Fehler zu verursachen? Oder eine andere Art, die Aktion auszuführen?