Я работаю над своим приложением RoR4 с включенным драгоценным камнем Solidus. Когда я попытался переопределить метод checkout_controller # update своего внешнего интерфейса (расположен here).Solidus/Spree + Override checkout controller
Я переопределяю контроллер в соответствии с Spree's documents, но это дало мне ошибку uninitialized constant OrderUpdateAttributes
.
CheckoutController#update
назван /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
мне нужно переопределить этот метод для того, чтобы выполнить какое-либо действие после того, как заказ будет завершен (после ее проверки). Есть ли что-то, что мне не хватает, чтобы вызвать эту ошибку? Или другой способ выполнить действие?