Ruby on rails 如何在通过Spree API创建订单时创建发货?

Ruby on rails 如何在通过Spree API创建订单时创建发货?,ruby-on-rails,spree,Ruby On Rails,Spree,我有一个与SpreeAPI集成的应用程序。在Spree API的默认流中,当订单按照core.app.models.Spree.order.checkout.rb中的第90行转换为交货时,将创建发货: 因为我在创建订单的初始帖子中同时指定了行项目和发货地址,所以我希望Spree也创建发货 到目前为止,我创建了一个orders\u controller\u decorator,其中我用原始的create代码加上一个create\u proposed\u装运调用覆盖了create方法,但是我从从原始

我有一个与SpreeAPI集成的应用程序。在Spree API的默认流中,当订单按照core.app.models.Spree.order.checkout.rb中的第90行转换为交货时,将创建发货:

因为我在创建订单的初始帖子中同时指定了行项目和发货地址,所以我希望Spree也创建发货

到目前为止,我创建了一个orders\u controller\u decorator,其中我用原始的create代码加上一个create\u proposed\u装运调用覆盖了create方法,但是我从从原始create方法复制的代码中得到了namererror(未初始化的常量订单)

我当前的订单\控制器\装饰器:


我的想法是对的。一旦我通过指定模块修复了与Order相关的NameError,一切都按预期工作

module Spree
  Api::OrdersController.class_eval do

    def create
      authorize! :create, Order
      @order = Core::Importer::Order.import(current_api_user, order_params)
      @order.create_proposed_shipments
      respond_with(@order, default_template: :show, status: 201)
    end

  end
end
或者,我也可以这样做

Spree::Api::OrdersController.class_eval do

  def create
    authorize! :create, Spree::Order
    @order = Core::Importer::Order.import(current_api_user, order_params)
    @order.create_proposed_shipments
    respond_with(@order, default_template: :show, status: 201)
  end

end
module Spree
  Api::OrdersController.class_eval do

    def create
      authorize! :create, Order
      @order = Core::Importer::Order.import(current_api_user, order_params)
      @order.create_proposed_shipments
      respond_with(@order, default_template: :show, status: 201)
    end

  end
end
Spree::Api::OrdersController.class_eval do

  def create
    authorize! :create, Spree::Order
    @order = Core::Importer::Order.import(current_api_user, order_params)
    @order.create_proposed_shipments
    respond_with(@order, default_template: :show, status: 201)
  end

end