私はSolidus gemが入ったRoR4アプリを開発中です。フロントエンドのcheckout_controller#updateメソッド(hereにあります)をオーバーライドしようとしました。Solidus/Spree +オーバーライドチェックアウトコントローラー
コントローラーをSpree's documentsに従ってオーバーライドしましたが、エラーはuninitialized constant OrderUpdateAttributes
でした。私は注文が完了した後に(そのチェックアウトした後に)いくつかのアクションを実行するために、このメソッドをオーバーライドするために必要な/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
として名前
CheckoutController#update
。このエラーの原因となるものがありますか?またはアクションを実行する別の方法は?