我正在寻找有关如何做我过去想做多次的事情的建议,这让我相信有一种设计模式(可能是一个宝石,或者例子)如何做到我想实现。
我目前正在 Rails 中处理涉及多种订单类型的项目。例如,我有一个需要生成货件的基本订单。订单中的数据需要"映射" 到新创建的货件。 (非常简短的例子:)
Order
- 来自:纽约市 - 到:LA
- shipping_type:FedEx
Shipment
- 来自:LA
- 到:纽约市 - shipping_type:FedEx
订单和货件将具有几乎相同的字段,其中一个细微差别是来自&#34的" ;和" 到"字段切换。在现实世界中,这些对象中的每一个都有许多更多的字段。还有许多其他类型的订单需要具有" 地图"。
为了尝试保存 DRY ,有没有办法在这些订单之间创建地图,这样我就可以尽量减少写generate_order_from(order)
的次数方法?
编辑:我正在尝试创建一个类似于RestKit's Object Mapping的方法。我在Ruby中找不到类似的东西。
答案 0 :(得分:0)
订单和发货将具有几乎相同的字段......在现实世界中,每个对象都有许多更多的字段。
也许这是你的问题?如果您有这么多字段,并且大多数字段在订单和发货中都是相同的,您应该将公共字段拉到一个单独的对象中,该对象由订单和货件共享(在数据库中,这相当于规范化您的表)。然后,您只需映射实际更改的字段(例如切换from
和to
字段。)