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
在订单视图中添加您的新字段
我在 Rails 上使用 Spree。我的客户希望在完成他们的购物车时在他们的订单中添加额外的注释。例如,他们可能想要添加一个内部参考编号。
有没有办法添加一个客户可以输入的附加可选字段,与整个订单或该订单中的一个订单项相关联,并将显示在订单显示和发票中?
谢谢
首先使用新迁移
将数据库列添加到 spree_ordersrake 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
在订单视图中添加您的新字段