gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:44:15 27 4
gpt4 key购买 nike

我有一个与 Spree API 集成的应用程序。在 Spree API 的默认流程中,当订单从 core.app.models.spree.order.checkout.rb 的第 90 行过渡到交付时创建发货:

before_transition :to => :delivery, :do => :create_proposed_shipments

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

到目前为止,我创建了一个 orders_controller_decorator,我在其中用原始创建代码加上对 create_proposed_shipments 的调用覆盖了 create 方法,但我从我从原始 create 方法复制的代码中获取 NameError(未初始化的常量 Order)

我当前的 orders_controller_decorator:

Spree::Api::OrdersController.class_eval do

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

end

最佳答案

我的想法是正确的。通过指定模块修复与 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

关于ruby-on-rails - 如何在通过 Spree API 创建订单时创建发货?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24914243/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com