我正在使用Spree on Rails。我的客户希望在最终确定购物车时在订单中添加其他注释。例如,他们可能想添加一个内部参考号。
是否可以添加一个额外的可选字段供客户输入,该字段将与整个订单或订单中的订单项相关联,并显示在订单显示和发票中?
谢谢
答案 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
在订单视图中添加新字段