Ruby-Rails:大礼包-客户添加订单注释

时间:2018-10-18 19:38:14

标签: ruby-on-rails spree

我正在使用Spree on Rails。我的客户希望在最终确定购物车时在订单中添加其他注释。例如,他们可能想添加一个内部参考号。

是否可以添加一个额外的可选字段供客户输入,该字段将与整个订单或订单中的订单项相关联,并显示在订单显示和发票中?

谢谢

1 个答案:

答案 0 :(得分:0)

首先通过新迁移将数据库列添加到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

在订单视图中添加新字段