首页 > 解决方案 > Ruby-On-Rails:Spree - 客户添加订单备注

问题描述

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

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

谢谢

标签: ruby-on-railsspree

解决方案


首先使用新迁移将数据库列添加到 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在订单视图中添加新字段


推荐阅读