Ruby-On-Rails: Spree - 客户添加订单备注

Ruby-On-Rails: Spree - Customer to add order notes

我在 Rails 上使用 Spree。我的客户希望在完成他们的购物车时在他们的订单中添加额外的注释。例如,他们可能想要添加一个内部参考编号。

有没有办法添加一个客户可以输入的附加可选字段,与整个订单或该订单中的一个订单项相关联,并将显示在订单显示和发票中?

谢谢

首先使用新迁移

将数据库列添加到 spree_orders
rake db:create migration AddIRNToSpreeOrders

并在创建的迁移文件中

def change
  add_column :spree_orders, :irn, :string
end

如果需要,在 app/models/spree/order_decorator.rb

中添加验证
Spree::Order.class_eval do
  validates_length_of :irn, minimum: 2, maximum: 254, allow_blank: true
end

在控制器的强参数中允许您的新字段 app/controllers/spree/orders_controller_decorator.rb

Spree::OrdersController.class_eval do

  private

  def order_params
    if params[:order]
      params[:order].permit(*permitted_order_attributes, :irn)
    end
  end
end

通过复制和覆盖视图文件或破坏 https://guides.spreecommerce.org/developer/deface_overrides_tutorial.html

在订单视图中添加您的新字段