ruby-on-rails - Ruby-On-Rails:Spree - 客户添加订单备注
问题描述
我正在使用 Spree on Rails。我的客户希望在完成他们的购物车时为他们的订单添加额外的注释。例如,他们可能想要添加内部参考号。
有没有办法添加客户可以输入的附加可选字段,与整个订单或该订单中的行项目相关联,该字段将显示在订单显示和发票中?
谢谢
解决方案
首先使用新迁移将数据库列添加到 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在订单视图中添加新字段
推荐阅读
- function - 如何在 vim statusline 中显示字符串的实例数
- reactjs - 用 jest 测试 react-map-gl 和 react 测试库超时
- c# - C# 允许将值与接口的属性相关联
- javascript - 无法连接到 mongo db 数据库,显示超时错误
- microservices - 如果 Post 和 Comment 是单独的聚合根,如何尊重 Post.CommentsAllowed?
- beautifulsoup - 我如何通过使用 Python3 刷新元标记来遵循重定向
- python - 连续运行我的比特币价格检查器
- ios - Xamarin Forms 5 - iOS 应用程序图标未出现
- python - 逻辑回归 Python 实现
- javascript - 在 vue.js 中连接数组